为什么RE 我不能理解……
查看原帖
为什么RE 我不能理解……
158528
liuruofan楼主2021/10/24 21:47

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<fstream>
#include<cstdio>
using namespace std;
const int N=100010;
int n,m1,m2,n1,n2;
struct xx
{
    int a,b;
    int t;
}x[N],y[N],d[N];
bool cmp(xx t1,xx t2)
{
    return t1.a<t2.a;
}
int check1(int k)
{
    if(k==0) return 0;
    int sum=k;
    for(int i=1;i<=m1;i++)
    {
        if(i<=k) d[i]=x[i];
        else
        {
            int minn=999999,u;
            for(int j=1;j<=k;j++)
            {
                if(d[j].b<minn)
                {
                    minn=d[j].b;
                    u=j;
                }
            }
            if(x[i].a>d[u].b)
            {
                sum++;
                d[u]=x[i];
            }
        }
    }
    return sum;
}
int check2(int k)
{
    if(k==0) return 0;
    int sum=k;
    for(int i=1;i<=m2;i++)
    {
        if(i<=k) d[i]=y[i];
        else
        {
            int minn=999999,u;
            for(int j=1;j<=k;j++)
            {
                if(d[j].b<minn)
                {
                    minn=d[j].b;
                    u=j;
                }
            }
            if(y[i].a>d[u].b)
            {
                sum++;
                d[u]=y[i];
            }
        }
    }
    return sum;
}
int main()
{
   // freopen("airport.in","r",stdin);
    //freopen("airport.out","w",stdout);
    cin>>n>>m1>>m2;
    for(int i=1;i<=m1;i++)
    {
        scanf("%d%d",&x[i].a,&x[i].b);
        x[i].t=x[i].b-x[i].a;
    }
    for(int i=1;i<=m2;i++)
    {
        scanf("%d%d",&y[i].a,&y[i].b);
        y[i].t=y[i].b-y[i].a;
    }
    sort(x+1,x+m1+1,cmp);
    sort(y+1,y+m2+1,cmp);
    int ans=0;
    for(int i=1;i<=min(n,m1);i++)
    {
        n1=check1(i);
        n2=check2(n-i);
        if(n1+n2>ans) ans=n1+n2;
    }
    cout<<ans;
    return 0;
}
2021/10/24 21:47
加载中...