80分,help!!!

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

lx01220122 @ 2024-08-11 12:52:42


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

by meifan666 @ 2024-08-11 13:00:21

@lx01220122

for(int j=r;j>l;j--){
    a[j]++; 
}

for(int j=r;j>=l;j--){
    a[j]++; 
}

by Zhang_z_h @ 2024-08-11 13:02:01


#include<bits/stdc++.h>
using namespace std;
int a[100005],s,l,m;
int main(){
    cin>>l>>m;
    memset(a,0,sizeof 0); 
    for(int i=1;i<=m;i++){
        int u,v;
        cin>>u>>v;
        for(int j=u;j<=v;j++){
            if(a[j]==0)
            a[j]=1; 
        }
    }
    for(int i=0;i<=l;i++){
        if(a[i]==0){
            s++;
        }
    } 
    cout<<s;
    return 0;
}
求关qwq

by Zhang_z_h @ 2024-08-11 13:04:12

@lx01220122


by zhaoyikuan @ 2024-08-11 13:37:32

#include<iostream>
using namespace std;
int main()
{
    int s, n, cnt = 0;
    cin >> s >> n;
    bool a[1000001];
    for(int i = 0; i <= s; i++) a[i] = 1;
    int u,m;
    for(int i = 1; i <= n; i++)
    {
        cin >> u >> m;
        for(int j = u; j <= m; j++) a[j] = 0;
    }
    for(int i = 0; i <= s; i++)
    {
        if(a[i]) cnt++;
    }
    cout << cnt;
    return 0;
}

AC代码,应该这个最好理解,用布尔数组来模拟(想必很多人都是用的这个方法)
这个入门题很简单啊 蒟蒻的不解


by lx01220122 @ 2024-08-11 14:46:33

谢谢神犇


|