江湖救急 !求大佬援助(c++ ac2)

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

AlenLuo @ 2023-10-21 23:39:05

思路:

把所有输入数据中重复的部分筛选出来 然后用总数减施工的

代码:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int l,m,num[2][105],h;
int main(){
    cin>>l>>m;
    for(int i=0;i<m;i++){
        cin>>num[0][i]>>num[1][i];
    }
    for(int i=0;i<m;i++){
        for(int j=0;j<m;j++){
            if(num[0][i]==-1||num[0][i]==-1||num[0][j]==-1||num[0][j]==-1) break;
            else if(num[0][i]>num[0][j]){
                if(num[1][i]<num[1][j]&&num[0][i]<num[1][j]){
                    num[0][i]=-1;
                    num[1][i]=-1;
                }
                else if(num[1][i]>num[1][j]&&num[0][i]<num[1][j]){
                    num[1][j]=num[1][i];
                    num[0][i]=-1;
                    num[1][i]=-1;
                }
            }
        }
    }
    for(int i=0;i<m;i++){
        cout<<num[0][i]<<" "<<num[1][i]<<endl;
    }
    for(int i=0;i<=m;i++){
        cout<<h<<endl;
        if(num[0][i]==-1&&num[1][i]==-1) ;
        else h+=num[1][i]-num[0][i]+1;

    }
    cout<<l-h+2;
    return 0;
}

by Douruixuan @ 2023-10-22 14:07:23

换一下思路吧,三步走起
1.我们要想富,先种树开一个列表,列表里的树都是0
2.然后再砍树,用循环把区间内的树都砍了(变成1)
3.循环,看还有多少树是0
一个小小小小蒟蒻最多帮到这了


|