校门外的树(前缀和与差分解法)
校门外的树
http://www.nowcoder.com/questionTerminal/0e8cfc82936048769af45967f3c4ef7e
前缀和与差分解法(适合数据量大时候使用)
#include<iostream>
using namespace std;
const int N = 10010;
int l,m,x,y,sum;
int q[N],s[N];
int main()
{
cin>>l>>m;
while(m--)
{
cin>>x>>y;
//差分
q[x] -= 1;
q[y+1] +=1;
}
//前缀和
s[0] = q[0];
for(int i =1;i<=l;i++) s[i] = s[i-1] + q[i] ;
for(int i= 0;i<=l; i++) if(s[i] == 0) sum++;
cout<<sum;
return 0;
}
查看13道真题和解析