校门外的树
值周
非常相似的题,第一题可以直接暴力,第二题使用差分+前缀和。
值周
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e8+5;
int a[maxn];
int main(){
int l,m;
scanf("%d%d",&l,&m);
int x,y;
for(int i=0;i<m;i++){
scanf("%d%d",&x,&y);
a[x]++;a[y+1]--;//加一表示这个区间的开始,减一表示这个区间的结束。
}
int sum=0,ans=0;
for(int i=0;i<=l;i++){
sum+=a[i];
//在没有碰到区间的情况下会一直是0,如果不为零说明现在处于一个区间之内,需要让那个人走掉
if(sum!=0)ans++;
}
//得出所有走掉的人之后就可以知道还剩下多少人了
printf("%d\n",l-ans+1);
return 0;
}
校门外的树(暴力)
#include<bits/stdc++.h>
using namespace std;
int a[10005];
int main(){
int l,m,x,y;
cin>>l>>m;
memset(a,0,sizeof(a));
for(int i=0;i<m;i++){
cin>>x>>y;
for(int j=x;j<=y;j++){
a[j]++;
}
}
int ans=0;
for(int i=0;i<=l;i++){
if(!a[i])ans++;
}
cout<<ans<<endl;
return 0;
}