神奇,输入无反应

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

None_g @ 2023-05-13 13:57:09

用的题解里ChargeDonkey大佬的思路

思路:

第一遍,将路上的所有树打上标记,表示这个点没有被访问过。

第二遍,读入区间的头和尾,从这个区间的头开始循环,到尾结束,标记为访问过。

第三遍,顺序访问路上的树,只要没访问过,计数加1,这样就求出了路上所有还存在的树的数目。

编了个代码,如下

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[10001],b[10001],c[10001];
    int x,l,m,i,j;
    cin>>l>>m; 
    for (i=0;i<=m;i+2)
    {
    cin>>c[i]>>c[i+1];  
    }//c[i]为一个区域的起始点和终止点的坐标。
    for (i=0;i<=l;i++)
    a[i]=1;
    for (i=0;i<=l;i+2)
    {
        for (j=c[i];j<=c[i+1];i+2)
        {
        a[j]=0;
        }
    }
    for (i=0;i<=l;i++)
    {
    if (a[i]==1)
    x+1;
    }
    cout<<x;
    return 0; 
}

但是输入后回车无响应,提交全TLE(还是第一次见这个),求大佬看看


by None_g @ 2023-05-13 14:01:31

改一个地方

for (j=c[i];j<=c[i+1];i+2)
        {
        a[j]=0;
        }

改为

for (j=c[i];j<=c[i+1];j+2)
        {
        a[j]=0;
        }

by _xEr_ @ 2023-05-13 14:02:29

@3316084249z


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[10001],b[10001],c[10001];
    int x,l,m,i,j;
    cin>>l>>m; 
    for (i=0;i<=m;i+2)//这里应该是i+=2,i+2表示运算没有任何改变,i+=2 等于 i=i+2
    {
    cin>>c[i]>>c[i+1];  
    }//c[i]为一个区域的起始点和终止点的坐标。
    for (i=0;i<=l;i++)
    a[i]=1;
    for (i=0;i<=l;i+2) //这里应该是i+=2,i+2表示运算没有任何改变,i+=2 等于 i=i+2
    {
        for (j=c[i];j<=c[i+1];i+2)//这里应该是i+=2,i+2表示运算没有任何改变,i+=2 等于 i=i+2
        {
        a[j]=0;
        }
    }
    for (i=0;i<=l;i++)
    {
    if (a[i]==1)
    x+1;
    }
    cout<<x;
    return 0; 
}

by _xEr_ @ 2023-05-13 14:05:14

@3316084249z 变量+2 仅仅只是运算,变量+=2才是把本身加2,具体见上面的注释


by None_g @ 2023-05-13 14:05:23

@Xer9536 改了改,还找到了几个错

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[10001],b[10001],c[10001];
    int x,l,m,i,j;
    cin>>l>>m; 
    for (i=0;i<=m;i+=2)
    {
    cin>>c[i]>>c[i+1];  
    }//c[i]为一个区域的起始点和终止点的坐标。
    for (i=0;i<=l;i+=2)
    a[i]=1;
    for (i=0;i<=l;i+=2)
    {
        for (j=c[i];j<=c[i+1];j+=2)
        {
        a[j]=0;
        }
    }
    for (i=0;i<=l;i++)
    {
    if (a[i]==1)
    x=x+1;
    }
    cout<<x;
    return 0; 
}

可以用了,但全WA(悲


by None_g @ 2023-05-13 14:05:58

@Xer9536 谢谢大佬


by _xEr_ @ 2023-05-13 14:46:17

@3316084249z 别谢我,我超弱,我的所有同学都吊打我


|