NC16649-校门外的树/NC24636-值周
题目链接
校门外的树:https://ac.nowcoder.com/acm/problem/16649
值周:https://ac.nowcoder.com/acm/problem/24636 数据加强版,加到了1e8
题意:从[0~L]中选取m个区间[l~r],删除[l~r]中的元素,计算最后剩余多少个元素
思路:前缀和 差分标记端点 O(n)
#include<iostream>
using namespace std;
int a[(int)1e8+5];
int l,r;
int main (){
int n,m;
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>l>>r;
a[l]++;
a[r+1]--;
}
int ans=0;
if(a[0]==0)ans++;
for(int i=1;i<=n;i++)
{
a[i]+=a[i-1];
if(a[i]==0)ans++;
}
cout<<ans<<endl;
return 0;
}

浙公网安备 33010602011771号