0分,求助

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

lmdyyd @ 2024-10-09 22:33:24

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

        }
    }for(int i=0;i<=l;i++)
    {
        if(a[i]==1)
        {
            n++;
        }
    }cout << n;
    return 0; 
} 

by Lisuyang @ 2024-10-09 22:35:41

请注意下标,数组开成l+1 @lmdyyd


by M_C_Yyyds @ 2024-10-12 19:34:05

@lmdyyd

#include<iostream>
#include<cstdio>
using namespace std;
#include<cstring>
int L,M;
int cnt=0;
int vis[10000+10];
int main() {
    memset(vis,0,sizeof(vis));
    cin>>L>>M;
    for(int i=0;i<=L;i++)
        vis[i]=0;
    for(int i=1;i<=M;i++)
    {
        int head,tail;
        cin>>head>>tail;
        for(int j=head;j<=tail;j++)
            if(vis[j]==0)
                vis[j]=1;
    }
    for(int i=0;i<=L;i++)
    {
        if(vis[i]==0)
            cnt++;
    }
    cout<<cnt<<endl;

     return 0;
}

你可以设定一个数组,初始化为0,有需要种的你就调为1,懂?


by lmdyyd @ 2024-10-12 21:32:18

谢谢达唠


by goto_FLY @ 2024-10-14 10:57:28

数组能开的长度必须是常量吧


|