0分求调

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

theblacksilence @ 2024-07-20 09:58:43

样例能过,代码:

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

by huangzixuan666 @ 2024-07-20 10:01:44

@theblacksilence 有可能ri小le大


by theblacksilence @ 2024-07-20 10:06:50

@huangzixuan666 题目不是说0≤u≤v≤l吗


by medal_dreams @ 2024-07-20 10:18:17

@theblacksilence count的初始化0,不然报错


by huangzixuan666 @ 2024-07-20 10:19:19

眼瞎了,你的错误是count没设初始值


by theblacksilence @ 2024-07-20 10:29:52

草我傻了,过了,谢谢各位


by gubb @ 2024-07-25 21:00:23

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e4+10;//题目里面树的数量l<=10^4 
bool tr[MAXN];//代表树在路上没被移走 
int main(){
    int l,m;//l树的数量,m移动区域的数量 
    cin>>l>>m;
    int x,y;
    while(m--){//for (int i=1;i<=m;i++) 也行
        cin>>x>>y;
        for(int i=x;i<=y;i++){
            //遍历每一个区域x y所有的值 
            tr[i]=true;//代表i位置的树被移走了 
        }
    }
    int s=0;//累加器剩下多少树 
    for(int i=0;i<=l;i++)//遍历种树的区域 
    if(tr[i]==false) s++;//没有被移走s++ 
    cout<<s;
    return 0;

}

|