题目: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)上升序列相关推荐

  1. bzoj1046 [HAOI2007]上升序列

    [bzoj1046][HAOI2007]上升序列 2014年8月15日3,5483 Description 对于一个给定的S={a1,a2,a3,-,an},若有P={ax1,ax2,ax3,-,ax ...

  2. bzoj1046[HAOI2007]上升序列

    1046[HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 5497  Solved: 1915 [Submit][Stat ...

  3. 2014.8.15模拟赛【公主的工作】bzoj1046[HAOI2007]上升序列

    bzoj题目是这样的 Description 对于一个给定的S={a1,a2,a3,-,an},若有P={ax1,ax2,ax3,-,axm},满足(x1 < x2 < - < xm ...

  4. Bzoj 1046: [HAOI2007]上升序列 二分,递推

    1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3671  Solved: 1255 [Submit][St ...

  5. BZOJ 1046: [HAOI2007]上升序列(LIS)

    题目挺坑的..但是不难.先反向做一次最长下降子序列.然后得到了d(i),以i为起点的最长上升子序列,接下来贪心,得到字典序最小. ----------------------------------- ...

  6. BZOJ 1046: [HAOI2007]上升序列【贪心+二分状态+dp+递归】

    1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4987  Solved: 1732 [Submit][St ...

  7. bzoj 1046: [HAOI2007]上升序列

    1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4860  Solved: 1692 [Submit][St ...

  8. [HAOI2007]上升序列

    题目:BZOJ1046.洛谷P2215.codevs1714. 题目大意:对于一个给定的S={a1,a2,a3,-,an},若有P={$a_{x1},a_{x2},a_{x3},-,a_{xm}$}, ...

  9. [BZOJ 1046] [HAOI2007] 上升序列 【DP】

    题目链接:BZOJ - 1046 题目分析 先倒着做最长下降子序列,求出 f[i],即以 i 为起点向后的最长上升子序列长度. 注意题目要求的是 xi 的字典序最小,不是数值! 如果输入的 l 大于最 ...

最新文章

  1. 如何轻松在线观看CNCC丨重启线上门票
  2. 北大95后「AI萝莉」回来了,一次中8篇顶会论文的她,现在达摩院开源7大NLP模型...
  3. 机器学习两种距离——欧式距离和马氏距离
  4. 仅使用numpy从头开始实现神经网络,包括反向传播公式推导过程
  5. Atom飞行手册翻译: 3.6 图标
  6. 【Elasticsearch】Elasticsearch 悬空索引
  7. solr6.6初探之主从同步
  8. pycharm配置后执行RF脚本
  9. 张家口zec挖矿软件哪里下载_电脑小白去哪里下载正规软件?
  10. python编程入门书籍-编程小白的第一本 Python 入门书
  11. 哪些计算机的应用需采用多媒体技术,计算机多媒体技术的应用现状与发展前景...
  12. [精简]托福核心词汇66
  13. Cree捐赠350万美元支持纽约理工学院的STEM教育项目,帮助培训未来的高科技劳动力
  14. 卷积神经网络案例:中文字体识别——隶书和行楷
  15. 数影周报:IAM巨头Okta源代码泄露,江淮拟17.04亿元“深绑”蔚来
  16. 打造一支有服务能力的销售队伍
  17. 十二银元分三次找一假
  18. 基于MATLAB的BPSK和QPSK调制的性能比较
  19. 科研伦理与学术规范 期末考试1(50题)
  20. python安装及环境配置

热门文章

  1. 计算机比特块的输出概念,第1讲-比特的概念及计算机的组成原理.ppt
  2. 收藏!李飞飞老师《注意力与Transformer》总结,84页ppt开放下载!
  3. 从入门到精通!零基础上手车辆目标跟踪与计数
  4. linux远程桌面自启动,树莓派远程桌面配置-开机自启SSH
  5. android布局中上下对齐,android – 如何使用相对布局垂直对齐列表中的项?
  6. 删除出现次数最少字符串JAVA_牛客网——华为机试(题23:删除字符串中出现次数最少的字符)(Java)...
  7. go web db每次关闭_竟然不用写代码!一款可视化 Web 管理后台生成工具
  8. cocos2d 入门必备4个基本概念
  9. python元组添加元素_2分钟学会Python的元组使用
  10. php中提取现在的时间函数,php中时间函数date及常用的时间计算