蒟蒻求助
查看原帖
蒟蒻求助
500319
不考400不改名楼主2021/8/8 09:33
#include<iostream>
#include<algorithm>
#include<string>
#define INF 0x3f3f3f3f
#define N 5001
using namespace std;
struct Node{
    int a;
    int b;
}q[N];
int f[N];
int main()
{
    int n;
 
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>q[i].a>>q[i].b;
 
    for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
        {
            if(q[i].a>q[j].a)
                swap(q[i],q[j]);
            else if(q[i].a==q[j].a)
            {
                if(q[i].b>q[j].b)
                    swap(q[i],q[j]);
            }
        }
 
    int maxx=-INF;
    for(int i=1;i<=n;i++)
    {
        f[i]=1;
        for(int j=1;j<i;j++)
            if(q[j].b<=q[i].b&&f[j]+1>f[i])
                f[i]=f[j]+1;
        maxx=max(maxx,f[i]);
    }
    cout<<maxx<<endl;
    return 0;
}

数组开小点就是RE,开大一点就是TLE

2021/8/8 09:33
加载中...