- 问答
求助
- 2023-11-1 18:39:39 @
题目:题目详情 - 校门外的树 - XAZXOJ //就是第一个数据的问题,要么第一个过了其他不过要么其他过了第一个不过(输出多加个1)不知道该咋整
#include <bits/stdc++.h>
using namespace std;
int tree[10005];
int m,n,cnt=0,a1,b1,a=0;
int main ()
{
cin>>m;
for(int i=1;i<=m;i++)
tree[i]=1;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a1>>b1;
for(int p=a1;p<=b1;p++)
{
tree[p]=-1;
}
}
for(int i=1;i<=m;i++)
{
if(tree[i]==1)
cnt++;
}
cout<<cnt+1;
return 0;
}
1 comments
-
Csvoner LV 3 SU @ 2024-1-28 15:02:19
树的区间是
0-m
,一共有m + 1
棵树,你直接这样就好了:#include <bits/stdc++.h> using namespace std; int tree[10005]; int m,n,cnt=0,a1,b1,a=0; int main () { cin>>m; for(int i=0;i<=m;i++) tree[i]=1; cin>>n; for(int i=1;i<=n;i++) { cin>>a1>>b1; for(int p=a1;p<=b1;p++) { tree[p]=-1; } } for(int i=0;i<=m;i++) { if(tree[i]==1) cnt++; } cout<<cnt; return 0; }
- 1