Sirius_H2SO4 @ 2024-08-29 18:20:20
#include<iostream>
using namespace std;
int tree[11451],l,m,u[11451],v[11451],remain=0;
int main()
{
cin >> l >> m;
l++;
for(int i=0;i<m;i++){
cin >> u[i] >> v[i];
}
for(int i=0;i<=l;i++){
tree[i]=1;
}
for(int i=0;i<=m;i++){
for(int s=u[i];s<=v[i];s++){
if(tree[s])tree[s]=0;
}
}
for(int i=0;i<=l;i++){
if(tree[i])remain++;
}
cout << remain;
}
第一个测试点会比原来多算一棵树,但代码思路好像没问题? xwx
求助各位大佬谷u
by LEZ11821111 @ 2024-08-31 17:18:22
第十三行应该是i=1;i<=m;i++,或者i=0;i<m;i++,而不是i=0;i<=m;i++。
by LEZ11821111 @ 2024-08-31 17:20:00
数错了,是第十四行。
by zyn2013ndmz @ 2024-09-01 17:20:07
#include<iostream>
using namespace std;
int main() {
int l,m,a[100001]={0};
cin>>l>>m;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
for(int j=u;j<=v;j++){
a[j]=1;
}
}
int cnt=0;
for(int i=0;i<=l;i++){
if(a[i]==0)cnt++;
}
cout<<cnt;
return 0;
}