OK也是全WA了好吧~为什么没人用二维数组撒?

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

MrJason @ 2024-06-28 22:07:11

#include<iostream>
using namespace std;
int main()
{
    int l,m,sum=0;
    cin>>l>>m;
    int a[l],b[2][m];
    for(int i=0;i<l;i++)
        a[i]=1;
    for(int i=0;i<2;i++)
    {
        for(int j=0;j<m;j++)
            cin>>a[i][j];
    }
    for(int o=0;o<m;o++)
    {
        for(int i=b[0][o];i<b[1][o];i++)
            a[i]=0;
    }
    for(int i=0;i<l;i++)
    {
        if(a[i]=1)
          sum++;
    }
    cout<<sum;
    return 0;
}

by Syncc @ 2024-06-28 22:18:54

@MrJason


by Syncc @ 2024-06-28 22:19:39

if(a[i]=1)


by Syncc @ 2024-06-28 22:20:54

数组开全局,不要按数据定数组大小


by MrJason @ 2024-06-28 22:32:04

@Razer_System 什么意思


by MrJason @ 2024-06-28 22:35:06

编译不过


by Syncc @ 2024-06-28 22:36:35

@MrJason

#include<iostream>
using namespace std;
int a[10005],b[10005];
int main()
{
    int l,m,sum=0;
    cin>>l>>m;
    for(int i=0;i<=l;i++)
        a[i]=1;
    for(int i=0;i<m;i++){
        int l,r;
        cin>>l>>r;//左右端坐标
        for(int j=l;j<=r;j++){
            a[j]=0;//处理被挖掉的树
        }
    }
    for(int i=0;i<=l;i++){
        if(a[i]==1){
            sum++;//统计没被挖掉的树
        }
    }
    cout<<sum;
    return 0;
}

照着你的程序修改了一下


by MrJason @ 2024-06-28 22:37:36

@Razer_System

二维数组+桶排

挺好的呀


by Syncc @ 2024-06-28 22:42:31

@MrJason

#include<iostream>
using namespace std;
int main()
{
    int l,m,sum=0;
    cin>>l>>m;
    int a[l],b[m][2];
    for(int i=0;i<=l;i++)
        a[i]=1;
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<2;j++)
            cin>>b[i][j];
    }
    for(int o=0;o<m;o++)
    {
        for(int i=b[o][0];i<=b[o][1];i++)
            a[i]=0;
    }
    for(int i=0;i<=l;i++)
    {
        if(a[i]==1)
          sum++;
    }
    cout<<sum;
    return 0;
}

那就这样子


by MrJason @ 2024-06-29 13:06:03

@Razer_System

谢谢!


|