网站开发 土木,wordpress中文前端,黄骅网站,网站建设与管理实训课程正题 题目大意
序列AAA和序列BBB。一个子集SSS使得不存在 Ax≥Ayamp;Bx≤By(x,y∈S)A_x\geq A_y\ \amp;\ B_x\leq B_y(x,y\in S)Ax≥Ay Bx≤By(x,y∈S) 求子集最大大小 解题思路
很显然我们可以先排序然后变成LISLISLIS问题。
先按照AAA为第一关键字…正题 题目大意
序列AAA和序列BBB。一个子集SSS使得不存在 Ax≥Ayamp;Bx≤By(x,y∈S)A_x\geq A_y\ \amp;\ B_x\leq B_y(x,y\in S)Ax≥Ay Bx≤By(x,y∈S) 求子集最大大小 解题思路
很显然我们可以先排序然后变成LISLISLIS问题。
先按照AAA为第一关键字降序排序然后按照BBB为第二关键字升序排序。然后按照BBB求最长上升子序列即可。 codecodecode
#includecstdio
#includecstring
#includealgorithm
using namespace std;
const int N1e510;
struct node{int a,b;
}c[N];
int n,tail,q[N];
bool cmp(node x,node y)
{return (x.ay.a)?x.by.b:x.ay.a;}
int main()
{scanf(%d,n);for(int i1;in;i)scanf(%d%d,c[i].a,c[i].b);sort(c1,c1n,cmp);memset(q,0x3f,sizeof(q));q[0]0;for(int i1;in;i){int numc[i].b;if(numq[tail])q[tail]num;else{int loclower_bound(q1,q1tail,num)-q;q[loc]num;}}printf(%d,tail);
}