0分求助!!

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

Wyy_w123 @ 2022-11-13 20:46:35

????

#include<iostream>
using namespace std;
int main(){
    int l,m;
    cin>>l>>m;
    bool a[l+1]={1};
    int u,v;
    int x=l+1;
    for(int i=1;i<=m;i++){
        cin>>u>>v;
        for(int j=0;j<=l;j++){
            if(u<=j&&j<=v){
                if(a[j]){
                    x-=1;
                    a[j]=0;
                }
            }
        }
    }
    cout<<x;
    return 0;
}

by chenzhiyuan0923 @ 2022-11-13 20:50:31


#include <bits/stdc++.h>
using namespace std;
int a[10000],s=0,L,m,x,y;
int main(){
    cin>>L>>m;
   for(int i=0;i<=L;i++) a[i]=1;
    for(int i=1;i<=m;i++){
        cin>>x>>y;
        for(int j=x;j<=y;++j) a[j]=0;
    }
    int s=0;
    for(int i=0;i<=L;i++) if (a[i])s++;
    cout<<s;   
}

by Tongyq0722 @ 2022-11-13 21:23:15

  1. 将头文件改成万能头文件
  2. 用memset对a数组进行赋值
  3. AC代码
    #include<bits/stdc++.h>
    using namespace std;
    bool a[10000+1];
    int main(){
    int l,m;
    cin>>l>>m;
    int u,v;
    int x=l+1;
    memset(a,1,sizeof(a));
    for(int i=1;i<=m;i++){
        cin>>u>>v;
        for(int j=0;j<=l;j++){
            if(j>=u&&j<=v){
                if(a[j]==1){
                    x--;
                    a[j]=0;
                }
            }
        }
    }
    cout<<x;
    return 0;
    }

by 邦邦家的雷达站 @ 2022-11-18 20:47:39

如果说要做对的话,建议不要用布尔,其实用一些较为基础的语句也能过,我这一篇你一定能够看懂。


#include<iostream>
using namespace std;
int main(){
    int l,m,u,v,sum=0;
    cin>>l>>m;
    int tree[l+1]={ };
    for(int i=0;i<m;i++){
        cin>>u>>v;
        for(int j=u;j<=v;j++){
            tree[j]=tree[j]+1;
        }
    }for(int i=0;i<l+1;i++){
        if(tree[i]==0){
            sum=sum+1;
        }else{
            continue;
        }
    }cout<<sum;
    return 0;
}

by Wyy_w123 @ 2022-11-19 08:06:33

明白了 谢谢 @SBSB666 @Tongyq0722 @xchenzhiyuan


|