Clothax @ 2025-01-04 14:55:11
#include<bits/stdc++.h>
using namespace std;
int main(){
int l,m;
cin>>l>>m;
int s[l]={0};
int u[m],v[m];
for(int i=0;i<m;i++){
cin>>u[i]>>v[i];
}
for(int i=0;i<m;i++){
for(int j=u[i];j<=v[i];j++){
if(s[j]==0){
l--;
s[j]=1;
}
}
}
cout<<l;
return 0;
}
用的标记法
by Clothax @ 2025-01-04 14:57:13
题目没完全看懂就做了,见谅
by linanchen @ 2025-01-04 15:01:44
将你的答案+1并将你的s数组开大至s[l+1],因为0~
by Clothax @ 2025-01-04 15:38:49
@linanchen 按您的方法修改后得了90分,测试点1错了,可以麻烦再看一下吗,谢谢
by linanchen @ 2025-01-04 15:42:07
@Clothax 我写的过了
#include<bits/stdc++.h>
using namespace std;
int main(){
int l,m;
cin>>l>>m;
int s[l+1]={0};
int u[m],v[m];
for(int i=0;i<m;i++){
cin>>u[i]>>v[i];
}
for(int i=0;i<m;i++){
for(int j=u[i];j<=v[i];j++){
if(s[j]==0){
l--;
s[j]=1;
}
}
}
cout<<l+1;
return 0;
}
by Clothax @ 2025-01-04 15:46:06
@linanchen 懂了,代码里画蛇添足了,谢谢大佬,好人一生平安