求助!我实在不会

P1047 [NOIP2005 普及组] 校门外的树

taohuanyu @ 2024-11-25 21:08:17

#include<bits/stdc++.h>
using namespace std;
int main()
{
int l,m,sum=0,u[200],v[200],a[200]={0};
cin>>l>>m;
for(int i=1;i<=m;i++)
  cin>>u[i]>>v[i];
for(int i=1;i<=m;i++)
{
  for(int j=u[i];j<=v[i];j++)
    a[j]=1;
}
for(int i=1;i<=l+1;i++)
  if(a[i]==0)  sum++;

cout<<sum;
return 0;
}

by caijunhan2012 @ 2024-11-25 21:10:32

试试这样:

#include<bits/stdc++.h>
using namespace std;
int l,m,u,v;
bool a[10086];
int main(){
    cin>>l>>m;
    for(int i=0;i<m;i++){
        cin>>u>>v;
        for(int j=u;j<=v;j++){
            a[j]=1;
        }
    }
    int b=l;
    for(int i=0;i<=b;i++){
        if(a[i]){
            l--;
        }
    }
    cout<<l+1;
    return 0;
}

看看行不行


by caijunhan2012 @ 2024-11-25 21:11:38

@taohuanyu


by taohuanyu @ 2024-11-25 21:14:14

OK


by 小陈同学cyh @ 2024-11-25 21:15:45

好像没什么问题啊

for (int i=1;i<=l+1;i++)

改为

for (int i=0;i<=l;i++)

即可通过 @taohuanyu


by taohuanyu @ 2024-11-25 21:23:53


|