laoniubi @ 2024-12-21 10:47:40
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,f,r,l=0;
cin>>a>>b;
int d[a+1];
for(int i=0;i<=a+1;i++){
d[i]=i;
}
for(int i=1;i<=b;i++){
cin>>f>>r;
for(int j=f;j<=r;j++){
d[j]=0;
}
}
for(int i=0;i<=a+1;i++){
if(d[i]!=0){
l+=1;
}
}
cout<<l;
}
相对来说更简单好理解,但第一个测试点不对
by guxiaoqing @ 2024-12-22 20:04:13
@laoniubi 1.因为你这个d[0]=0并且标记为0。所以其实第一棵树在你这默认被砍了,所以要换个标记数字 2.题目说的是0-L而不是0-l+1,所以不用+1
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,f,r,l=0;
cin>>a>>b;
int d[a+1];
for(int i=0;i<=a;i++){
d[i]=i;
}
for(int i=1;i<=b;i++){
cin>>f>>r;
for(int j=f;j<=r;j++){
d[j]=-1;
}
}
for(int i=0;i<=a;i++){
if(d[i]!=-1){
l+=1;
}
}
cout<<l;
}
by guxiaoqing @ 2024-12-22 20:06:02
加油,少年 ~求关~
by laoniubi @ 2024-12-23 21:18:38
@guxiaoqing 所以可以把b[i]=i换成b[i]=1
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,f,r,l=0;
cin>>a>>b;
int d[a+1];
for(int i=0;i<=a;i++){
d[i]=1;
}
for(int i=1;i<=b;i++){
cin>>f>>r;
for(int j=f;j<=r;j++){
d[j]=0;
}
}
for(int i=0;i<=a;i++){
if(d[i]!=0){
l+=1;
}
}
cout<<l;
}
已关
by xsy5201314love @ 2024-12-26 16:03:18
241