BZOJ1046/HAOI2007上升序列
来源:互联网 发布:王力宏 乐器 知乎 编辑:程序博客网 时间:2024/05/17 01:27
思路:
题目看错了,是位置的字典序最小。。水题,倒着想应该还是满显然的。
#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>#include<cstring>#include<string>using namespace std;const int imax=10000+229;int n,Q;int f[imax]; int a[imax],ans[imax],len; int ibound(int x){ int l=1; int r=len; int pos=0; while(l<=r) { int Mid=(l+r)>>1; if(ans[Mid]>x) { pos=Mid; l=Mid+1;} else r=Mid-1; } return pos;}void iprintf(int x){ int last=0; for(int i=1;i<=n;i++) { if(f[i]>=x && a[i]>last) { printf("%d",a[i]); if(x!=1) printf(" "); last=a[i]; x--; } if(!x) break; } puts("");}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=n;i>=1;i--) { int pos=ibound(a[i]); f[i]=pos+1; len=max(len,pos+1); if(ans[pos+1]<a[i]) ans[pos+1]=a[i]; } scanf("%d",&Q); while(Q--) { int nowlen; scanf("%d",&nowlen); if(nowlen>len) { puts("Impossible"); continue;} else iprintf(nowlen); } return 0;}
0 0
- bzoj1046: [HAOI2007]上升序列
- [BZOJ1046][HAOI2007]上升序列
- [BZOJ1046] [HAOI2007]上升序列
- BZOJ1046/HAOI2007上升序列
- 【BZOJ1046】 [HAOI2007]上升序列
- BZOJ1046: [HAOI2007]上升序列
- bzoj1046: [HAOI2007]上升序列
- BZOJ1046: [HAOI2007]上升序列
- bzoj1046 [HAOI2007]上升序列
- bzoj1046: [HAOI2007]上升序列
- 【bzoj1046】 HAOI2007—上升序列
- [BZOJ1046][HAOI2007]上升序列(dp+贪心)
- BZOJ1046 洛谷 P2215 [HAOI2007]上升序列
- bzoj1046[HAOI2007]上升序列 DP(经典模型)
- BZOJ1046(HAOI2007)[上升序列]--最长下降子序列预处理
- BZOJ1046 [HAOI2007]上升序列 【LIS + 字典序最小】
- 2014.8.15模拟赛【公主的工作】&&bzoj1046[HAOI2007]上升序列
- BZOJ1046 上升序列 [二分][贪心]
- hibernate实现多表联合查询
- 数列求和-加强版 PAT
- Exynos4412 Uboot 移植(三)—— Uboot添加自定义命令
- dos命令行常见命令
- 寒假刷题-最短路
- BZOJ1046/HAOI2007上升序列
- bat 批处理入门学习_lesson01
- 如何写出优美的 C 代码
- CocoaPods详解之----制作篇
- tomcat性能调优
- DFS深度优先搜索
- 一个Testview上显示经纬度
- Hust oj 1992 比赛积分(01背包)
- [leetcode 259]3Sum Smaller