洛谷 P2782 友好城市(LIS)

题目:https://www.luogu.org/problemnew/solution/P2782

思路:

对一边排序另一边求LIS。

即使简单也不能不动脑子啊,大于小于都写错,实在不在学习状态。

#include 
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=200005;

int Stack[maxn];
struct fri{
    int a,b;
}f[maxn];

bool cmp(fri x,fri y){
    return x.a>n;
    for(int i=0;i>f[i].a>>f[i].b;
    sort(f,f+n,cmp);
    int top=0;
    for(int i=0;iStack[top])
            Stack[++top]=f[i].b;
        else{
            int l=1,r=top;
            while(lStack[mid])
                    l=mid+1;
                else
                    r=mid;
            }
            Stack[l]=f[i].b;
        }
    }
    cout<


你可能感兴趣的:(简单DP)