bzoj1046(HAOI2007)上升序列
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1046
可贪心。关键是知道每个点最长能否>=x。所以先倒着做一个最长下降子序列就行了。
自己没有想清楚贪心的必要性和可行性,更没有想到贪心需要的这个处理。
自己只是分析求LIS的过程,发现它记录的是长度为k的最小值而不是字典序最小值,字典序反而会被更新得越来越大;
所以自己也想要不倒着做最长下降子序列,通过正常的进程来使得到的字典序最小;但是发现字典序仍旧可能不更新而导致不是最小。
这道题的思路明明很简单……还是要多锻炼思维。
注意代码里的那个>。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=1e4+5,INF=0x7fffffff; int n,m,a[N],dp[N],cnt,cd[N]; int main() {scanf("%d",&n);for(int i=n;i;i--)scanf("%d",&a[i]);a[dp[0]]=INF;for(int i=1;i<=n;i++){if(a[dp[cnt]]>a[i]){dp[++cnt]=i;cd[i]=cnt;continue;}int l=1,r=cnt,tp=1;while(l<=r){int mid=((l+r)>>1);if(a[dp[mid]]>a[i])l=mid+1;//>a[i],不是>= (等于则可取代)else tp=mid,r=mid-1;}dp[tp]=i;cd[i]=tp;}scanf("%d",&m);int x,tp;for(int i=1;i<=m;i++){scanf("%d",&x);tp=-INF;if(cnt<x){printf("Impossible\n");continue;}else {for(int j=n;j;j--)if(cd[j]>=x&&a[j]>tp){printf("%d ",a[j]);tp=a[j];x--;if(!x)break;}printf("\n"); }}return 0; }
转载于:https://www.cnblogs.com/Narh/p/9147005.html
bzoj1046(HAOI2007)上升序列相关推荐
- bzoj1046 [HAOI2007]上升序列
[bzoj1046][HAOI2007]上升序列 2014年8月15日3,5483 Description 对于一个给定的S={a1,a2,a3,-,an},若有P={ax1,ax2,ax3,-,ax ...
- bzoj1046[HAOI2007]上升序列
1046[HAOI2007]上升序列 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 5497 Solved: 1915 [Submit][Stat ...
- 2014.8.15模拟赛【公主的工作】bzoj1046[HAOI2007]上升序列
bzoj题目是这样的 Description 对于一个给定的S={a1,a2,a3,-,an},若有P={ax1,ax2,ax3,-,axm},满足(x1 < x2 < - < xm ...
- Bzoj 1046: [HAOI2007]上升序列 二分,递推
1046: [HAOI2007]上升序列 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3671 Solved: 1255 [Submit][St ...
- BZOJ 1046: [HAOI2007]上升序列(LIS)
题目挺坑的..但是不难.先反向做一次最长下降子序列.然后得到了d(i),以i为起点的最长上升子序列,接下来贪心,得到字典序最小. ----------------------------------- ...
- BZOJ 1046: [HAOI2007]上升序列【贪心+二分状态+dp+递归】
1046: [HAOI2007]上升序列 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4987 Solved: 1732 [Submit][St ...
- bzoj 1046: [HAOI2007]上升序列
1046: [HAOI2007]上升序列 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4860 Solved: 1692 [Submit][St ...
- [HAOI2007]上升序列
题目:BZOJ1046.洛谷P2215.codevs1714. 题目大意:对于一个给定的S={a1,a2,a3,-,an},若有P={$a_{x1},a_{x2},a_{x3},-,a_{xm}$}, ...
- [BZOJ 1046] [HAOI2007] 上升序列 【DP】
题目链接:BZOJ - 1046 题目分析 先倒着做最长下降子序列,求出 f[i],即以 i 为起点向后的最长上升子序列长度. 注意题目要求的是 xi 的字典序最小,不是数值! 如果输入的 l 大于最 ...
最新文章
- 如何轻松在线观看CNCC丨重启线上门票
- 北大95后「AI萝莉」回来了,一次中8篇顶会论文的她,现在达摩院开源7大NLP模型...
- 机器学习两种距离——欧式距离和马氏距离
- 仅使用numpy从头开始实现神经网络,包括反向传播公式推导过程
- Atom飞行手册翻译: 3.6 图标
- 【Elasticsearch】Elasticsearch 悬空索引
- solr6.6初探之主从同步
- pycharm配置后执行RF脚本
- 张家口zec挖矿软件哪里下载_电脑小白去哪里下载正规软件?
- python编程入门书籍-编程小白的第一本 Python 入门书
- 哪些计算机的应用需采用多媒体技术,计算机多媒体技术的应用现状与发展前景...
- [精简]托福核心词汇66
- Cree捐赠350万美元支持纽约理工学院的STEM教育项目,帮助培训未来的高科技劳动力
- 卷积神经网络案例:中文字体识别——隶书和行楷
- 数影周报:IAM巨头Okta源代码泄露,江淮拟17.04亿元“深绑”蔚来
- 打造一支有服务能力的销售队伍
- 十二银元分三次找一假
- 基于MATLAB的BPSK和QPSK调制的性能比较
- 科研伦理与学术规范 期末考试1(50题)
- python安装及环境配置
热门文章
- 计算机比特块的输出概念,第1讲-比特的概念及计算机的组成原理.ppt
- 收藏!李飞飞老师《注意力与Transformer》总结,84页ppt开放下载!
- 从入门到精通!零基础上手车辆目标跟踪与计数
- linux远程桌面自启动,树莓派远程桌面配置-开机自启SSH
- android布局中上下对齐,android – 如何使用相对布局垂直对齐列表中的项?
- 删除出现次数最少字符串JAVA_牛客网——华为机试(题23:删除字符串中出现次数最少的字符)(Java)...
- go web db每次关闭_竟然不用写代码!一款可视化 Web 管理后台生成工具
- cocos2d 入门必备4个基本概念
- python元组添加元素_2分钟学会Python的元组使用
- php中提取现在的时间函数,php中时间函数date及常用的时间计算