前缀和与差分解法(适合数据量大时候使用)
#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;
} 
京公网安备 11010502036488号