WA85pts求调(first WA on #4)
查看原帖
WA85pts求调(first WA on #4)
612567
Kazeno_Akina楼主2023/11/2 20:01

代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
struct infor{int l,r,cnt=0;};
int n,m1,m2,ans,tot1,tot2,pre1[N],pre2[N];
bool flag;
infor plane[N],mem1[N],mem2[N];
inline bool cmpl(infor a,infor b){return a.l<b.l;}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin >> n >> m1 >> m2;
    for(int i=1;i<=m1;++i) cin >> plane[i].l >> plane[i].r;
    sort(plane+1,plane+m1+1,cmpl);
    for(int i=1;i<=m1;++i){
        flag=0;
        for(int j=1;j<=tot1;++j){
            if(mem1[j].r<=plane[i].l){
                mem1[j].r=plane[i].r,++mem1[j].cnt,flag=1;
                break;
            }
        }
        if(!flag) ++tot1,mem1[tot1].l=plane[i].l,mem1[tot1].r=plane[i].r,mem1[tot1].cnt=1;
    }
    for(int i=1;i<=m2;++i) cin >> plane[i].l >> plane[i].r;
    sort(plane+1,plane+m2+1,cmpl);
    for(int i=1;i<=m2;++i){
        flag=0;
        for(int j=1;j<=tot2;++j){
            if(mem2[j].r<=plane[i].l){
                mem2[j].r=plane[i].r,++mem2[j].cnt,flag=1;
                break;
            }
        }
        if(!flag) ++tot2,mem2[tot2].l=plane[i].l,mem2[tot2].r=plane[i].r,mem2[tot2].cnt=1;
    }
    for(int i=1;i<=tot1;++i) pre1[i]=pre1[i-1]+mem1[i].cnt;
    for(int i=1;i<=tot2;++i) pre2[i]=pre2[i-1]+mem2[i].cnt;
    for(int l=0;l<=m1&&l<=n;++l) ans=max(ans,pre1[l]+pre2[n-l]);
    cout << ans;
    return 0;
}

非常的看不出来,求调qwq

2023/11/2 20:01
加载中...