沈阳哪有做网站的,网站建设需求分析文档,随州网站建设学习,建筑工程公司起名大全解析
先按左端点排序得到一个右端点的新队列#xff0c;然后就可以发现#xff1a; 所有合法的方案都是新队列的一个单调递增队列 然后就转化成了最长上升序列的问题
代码
#includebits/stdc.h
using namespace std;
const int N1e6100;
int m,n;
struct node{int…
解析
先按左端点排序得到一个右端点的新队列然后就可以发现 所有合法的方案都是新队列的一个单调递增队列 然后就转化成了最长上升序列的问题
代码
#includebits/stdc.h
using namespace std;
const int N1e6100;
int m,n;
struct node{int a,b;bool operator (const node y)const{return ay.a;}
}p[N];
int q[N],ed0;
int main(){scanf(%d,n);for(int i1;in;i){scanf(%d%d,p[i].a,p[i].b);}sort(p1,p1n);for(int i1;in;i){int xp[i].b;if(q[ed]x) q[ed]x;else{int plupper_bound(q1,q1ed,x)-q;q[pl]x;}}printf(%d,ed);
}
/*
7
2 6
4 2
9 8
10 3
15 12
17 17
22 4
*/