不想学习就来刷水题(持续更新)

来源 学校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剩下的树

 

原文地址:https://www.cnblogs.com/zzyh/p/14212707.html