这段代码为嘛会错
  • 板块学术版
  • 楼主Alea
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/9/17 23:24
  • 上次更新2023/10/27 11:04:27
查看原帖
这段代码为嘛会错
322792
Alea楼主2022/9/17 23:24
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
struct ple{
    int start,end;
    ple(int st,int nd):start(st),end(nd){}
};
int main(){
    int n,m1,m2,
    vector<ple> plane[3];
    map<pair<int,int>,bool> cb;
    cin>>n>>m1>>m2;
    for(int i=1;i<m1;i++){
        int a,b;
        cin>>a>>b;
        plane[1].push_back(make_pair(a,b));
    }
    for(int i=1;i<m2;i++){
        int a,b;
        cin>>a>>b;
        plane[2].push_back(make_pair(a,b));
    }
    sort(plane[1].begin,plane[1].end,[](ple a,ple b)->bool{
        if(a.start!=b.start) return a.start<b.start;
        else return a.end-a.start<b.end-b.start;
    });
    sort(plane[2].begin,plane[2].end,[](ple a,ple b)->bool{
        if(a.start!=b.start) return a.start<b.start;
        else return a.end-a.start<b.end-b.start;
    });
    int cnt=0,ans=-1;
    for(int p=1;p<n;p++){
        cb.clear();
        for(int i=1;i<=m1;i++){
            for(int j=1;j<=p;j++){
                bool flag=true;
                for(int k=plane[1][i].start;k<=plane[1][i].end;k++) if(cb[make_pair(j,k)]){
                    flag=false;
                    break;
                }
                if(flag){
                    for(int k=plane[1][i].start;k<=plane[1][i].end;k++) cb[make_pair(j,k)]=true;
                    cnt++;
                }
            }
        }
        for(int i=1;i<=m2;i++){
            for(int j=1;j<=p;j++){
                bool flag=true;
                for(int k=plane[2][i].start;k<=plane[2][i].end;k++) if(cb[make_pair(j,k)]){
                    flag=false;
                    break;
                }
                if(flag){
                    for(int k=plane[2][i].start;k<=plane[2][i].end;k++) cb[make_pair(j,k)]=true;
                    cnt++;
                }
            }
        }
        ans=max(ans,cnt);
    }
    cout<<ans<<endl;
    return 0;
}

而报错信息如下:

csps2021t1.cpp: In function ‘int main()’:
csps2021t1.cpp:12:17: error: invalid declarator before ‘plane’
   12 |     vector<ple> plane[3];
      |                 ^~~~~
csps2021t1.cpp:18:9: error: ‘plane’ was not declared in this scope; did you mean ‘ple’?
   18 |         plane[1].push_back(make_pair(a,b));
      |         ^~~~~
      |         ple
csps2021t1.cpp:23:9: error: ‘plane’ was not declared in this scope; did you mean ‘ple’?
   23 |         plane[2].push_back(make_pair(a,b));
      |         ^~~~~
      |         ple
csps2021t1.cpp:25:10: error: ‘plane’ was not declared in this scope; did you mean ‘ple’?
   25 |     sort(plane[1].begin,plane[1].end,[](ple a,ple b)->bool{
      |          ^~~~~
      |          ple

我该怎嘛办

2022/9/17 23:24
加载中...