[BZOJ1046][HAOI2007]上升序列
来源:互联网 发布:淘宝假授权书处罚 编辑:程序博客网 时间:2024/05/20 17:39
原题地址
考虑按下标顺序构造长度为L的子序列,设构造到第i个数,显然当且仅当已选的数的个数+以第i个数开头的最长上升子序列的长度≥L时,第i个数在最优解中.
那么我们要求以第i个数开头的最长上升子序列的长度,不难发现可以转化为求最长下降序列,问题就解决了.
AC code:
#include <cstdio>const int N=10010;int n,m;int a[N],b[N],f[N],g[N];int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1,j=n;i<=n;i++,j--) b[i]=a[j]; for(int i=1;i<=n;i++){ g[i]=1; for(int j=1;j<i;j++){ if(b[j]>b[i]&&g[j]+1>g[i]) g[i]=g[j]+1; } } for(int i=1,j=n;i<=n;i++,j--) f[i]=g[j]; scanf("%d",&m); for(int i=1;i<=m;i++){ int l,last=0; scanf("%d",&l); for(int j=1;j<=n&&l;j++){ if(f[j]>=l&&a[j]>last){ printf("%d%c",a[j],--l?' ':'\n'); last=a[j]; } } if(l) printf("Impossible\n"); } 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 上升序列 [二分][贪心]
- VC调用DLL
- 移除系统自带的tabBarItem
- 面试题之:String,StringBuffer与StringBuilder的区别?
- 关于 self 和 super 在oc 中 的疑惑 与 分析
- MySQL简易建立餐厅数据库
- [BZOJ1046][HAOI2007]上升序列
- Linux环境下【mysql】修改mysql5.5默认编码
- AS1.3 及其以上预览版新插件-实验版(NDK)
- 猜拳游戏--最高效版本
- 简单演示Exploit SEH原理(未开启SafeSEH模块)
- perl获取AppAnnie数据
- 欢迎使用CSDN-markdown编辑器
- Swift 语言基础算法
- 一次重定向引起的异步IO