XDOJ 1107
来源:互联网 发布:线路设计软件 编辑:程序博客网 时间:2024/05/22 07:50
见标题滚。。。
这个题目和我之前想出的题一模一样诶。。。好激动。。
其实蛮简单,先按一维排序后求LIS就好了。。
#include<bits/stdc++.h>#define inc(i,l,r) for(int i=l;i<=r;i++)#define dec(i,l,r) for(int i=l;i>=r;i--)#define link(x) for(edge *j=h[x];j;j=j->next)#define mem(a) memset(a,0,sizeof(a))#define inf 1000000007#define ll long long#define succ(x) (1<<x)#define lowbit(x) (x&(-x))#define NM 100005using namespace std;int read(){int x=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch))x=x*10+ch-'0',ch=getchar();return x*f;}int n,a[NM],b[NM],c[NM],d[NM],tmp[NM],len;bool cmp(int x,int y){return (a[x]<a[y])||((a[x]==a[y])&&(b[x]>b[y]));}int main(){//freopen("data.in","r",stdin);while(~scanf("%d",&n)){mem(a);mem(b);mem(c);mem(d);mem(tmp);inc(i,1,n)a[i]=read();inc(i,1,n)b[i]=read();inc(i,1,n)tmp[i]=i;sort(tmp+1,tmp+1+n,cmp);inc(i,1,n)c[i]=a[i];inc(i,1,n)a[i]=c[tmp[i]];inc(i,1,n)c[i]=b[i];inc(i,1,n)b[i]=c[tmp[i]];d[len=1]=b[1];inc(i,2,n){if(b[i]>d[len])d[++len]=b[i];else d[lower_bound(d+1,d+len,b[i])-d]=b[i];}printf("%d\n",len);}return 0;}
1107: Too Simple
时间限制: 2 Sec 内存限制: 128 MB提交: 138 解决: 32
[提交][状态][讨论版]
题目描述
一棵n个点的树, 树上每个点有两个权值x ,y。 x, y都是整数。
现在要从树上选出尽可能多的点重新建边组成一棵新树, (仅仅一棵新树)。
新树要满足,树上任意两个点的权值(xi, yi), (xj, yj) 都满足xi < xj且yi < yj 或者 满足xi > xj且yi > yj.输出新树最多能由多少个点组成。
输入
多组数据,处理到EOF 不超过10组
第一行整数n , 2 <= n <= 100000
接下来两行 ,每行n个整数,
第一行表示n个点的X权值, x1, x2, x3....xn, 空格隔开。
第二行表示n个点的Y权值,y1, y2, y3....yn,空格隔开。
0 < x, y < 100000000
输出
输出新树最多能有多少个点组成。
样例输入
51 5 3 2 48 6 9 3 4
样例输出
3
提示
来源
阅读全文
0 0
- XDOJ 1107
- XDOJ-1003
- xdoj 1012
- xdoj-1111
- xdoj-1109
- xdoj-1042
- xdoj-1109
- xdoj-1040
- xdoj-1011
- xdoj-1022
- xdoj-1056
- xdoj-1055
- xdoj-1003
- XDOJ 1181
- XDOJ 1233
- XDOJ 1213
- XDOJ 1229
- XDOJ 1006
- 彻底理解ldpi、mdpi、hdpi、xhdpi、xxhdpi
- VIM安装
- poj3268 Silver Cow Party【最短路】
- 使用vuejs实现简单的图书增加删除功能
- mysql命令什么时候带table关键字, 什么时候不带table关键字呢?
- XDOJ 1107
- 手动设置Windows 7的开关机、锁屏登陆界面壁纸
- ucos-iii学习之软件定时器管理
- 解决Python下安装pip失败问题
- Ajax使用概述
- 利用git bash(git命令行)将本地代码上传到github上
- c++中被赋值的函数
- 表的复用
- java线程池