1. 程式人生 > 實用技巧 >不想學習就來刷水題(持續更新)

不想學習就來刷水題(持續更新)

來源學校OJ

1、這道題三目運算子優先順序可把我噁心壞了以後一定要加括號:)

題解:區間問題 一維差分就可以

/*
給定區間 [0,L],每個整數點都有一個樹 
和M個命令,每個命令把[L,R]樹都清走
問最後還有幾棵樹 
*/
#include<bits/stdc++.h>
using namespace std;
int L,M;
int ans;
int sum[10010];

int main()
{
    while(cin>>L>>M)
    {
        if(!L&&!M) break;
        memset(sum,
0,sizeof(sum)); sum[0]=1;sum[L+1]=-1;ans=0; for(int i=1;i<=M;i++) { int L,R; scanf("%d%d",&L,&R); if(L>R) swap(L,R); sum[L]--; sum[R+1]++; } for(int i=0;i<=L;i++) { if
(i==0) ans=ans+sum[0]>0?1:0; else { sum[i]=sum[i]+sum[i-1]; ans=ans+(sum[i]>0?1:0); } // cout<<i<<"--"<<sum[i]<<"--"<<ans<<endl; } cout<<ans<<endl; }
return 0; } //1 0 0 0 0 -1 //1 -1 0 1 0 -1 //0 -1 0 2 0 -1
1394剩下的樹