• 题面描述

    • 对于一个给定的\(S=\{a_1,a_2,a_3,…,a_n\}\),若有\(P=\{a_{x_1},a_{x_2},a_{x_3},…,a_{x_m}\}\),满足\((x_1 < x_2 < … < x_m)\)且\(( a_{x_1} < a_{x_2} < … < a_{x_m})\)。那么就称\(P\)为\(S\)的一个上升序列。如果有多个\(P\)满足条件,那么我们想求字典序最小的那个。任务给出S序列,给出若干询问。对于第\(i\)个询问,求出长度为\(L_i\)的上升序列,如有多个,求出字典序最小的那个(即首先\(x_1\)最小,如果不唯一,再看\(x_2\)最小……),如果不存在长度为\(L_i\)的上升序列,则打印Impossible.
  • 输入格式
    • 第一行一个\(N\),表示序列一共有\(N\)个元素第二行\(N\)个数,为\(a_1,a_2,…,a_n\) 第三行一个\(M\),表示询问次数。下面接\(M\)行每行一个数\(L\),表示要询问长度为L的上升序列。\(N\leq 10^4,M\leq 10^3\)
  • 输出格式
    • 对于每个询问,如果对应的序列存在,则输出,否则打印Impossible.
  • 题解
    • 不要被题面坑了,题面中的字典序不是指\(a_i\),而是指下标。
    • 考虑反过来做最长下降子序列,获得每个点相后最长上升子序列长度。
    • 每次询问,按字典序贪心,从前往后扫,可行就加入。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=1e4+5;
const int MAXM=1e3+5;
int n,m;
int a[MAXN],f[MAXN];
int b[MAXN],mxl;
int qry(int x){int l=1,r=n+1,mid;while (l+1<r){mid=(l+r)>>1;if (b[mid]>x) l=mid;else r=mid;}return l;
}
int main(){scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d",&a[i]);f[n]=1; b[1]=a[n];for (int i=n-1;i>=1;i--){int len=qry(a[i]);f[i]=len+1;mxl=max(mxl,f[i]);if (b[len+1]<a[i]) b[len+1]=a[i];}scanf("%d",&m);for (int i=1;i<=m;i++){int l; scanf("%d",&l);if (l>mxl){printf("Impossible\n");continue;}else {int las=0;for (int j=1;j<=n&&l>0;j++){if (f[j]>=l&&a[j]>las){printf("%d ",a[j]);l--; las=a[j];}}printf("\n");}}return 0;
}

转载于:https://www.cnblogs.com/shjrd-dlb/p/10801051.html

最新文章

  1. Flutter 网络请求库http
  2. python不能创建新变量_Python之变量的创建过程!
  3. 马来西亚拟对打车软件巨头Grab罚款2000万美元
  4. 子串字谜substring anagrams
  5. Intellij IDEA中 Debug 用法
  6. hadoop的web ui的8088端口打不开一例
  7. python3多线程queue_Python多线程(3)——Queue模块
  8. linux cent os7,Cent OS 7系统目录结构
  9. python一年一度的校园好歌声_歌声满校园
  10. python与txt文件查找,在Python中搜索TXT文件
  11. 设计模式---简单工厂模式(c++实现)
  12. 使用Eclipse开发Java EE应用
  13. Django下载超时
  14. 华为机试6-质因数分解
  15. (已解决)微信小程序调查问卷所有题放在一个页面上
  16. 【数据结构】常见数据结构类型
  17. matplotlib animation 模拟弹簧的强迫振动 以及odeint函数的应用
  18. 人工膝关节的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 计算机作业评价表,【作业检查记录评语】_教导处作业检查评语,教导处作业检查记录...
  20. nLite工具集成驱动到windows安装光盘(操作简化版)

热门文章

  1. 求助:为什么我用360浏览器和UC浏览器打不开JAVA中的index.html文件? 一打开就显示浏览器首界页...
  2. 二叉搜索树(排序二叉树)
  3. (一〇二)静态库(.a)的打包
  4. 微软面试4、在二元树中找出和为某一值的所有路径
  5. ASP.NET版本不是1.1, 2.0的也一样
  6. 移动web开发之flex布局笔记
  7. 业界总结 | 如何改进双塔模型,才能更好的提升你的算法效果?
  8. 【实习招聘】创新工场首席科学家、原ACL主席、MSRA副院长周明老师领导的NLP团队招聘机器翻译方向实习生...
  9. 一分钟搞懂的算法之BPE算法
  10. 02 Nginx和Keepalived高可用