这道题对于一类题都有一个通用思路:反向递减序列即为正向字典序。

  对于逆向思维的题还要多做才能培养这种对于逆向思维的感觉。

  想到这种方法之后,就很简单了。

  因为n×m不会炸,所以反向LIS叠一个贪心就能过了。

  直接甩题目&代码

  

Description

  对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ax
2 < … < axm)。那么就称P为S的一个上升序列。如果有多个P满足条件,那么我们想求字典序最小的那个。任务给
出S序列,给出若干询问。对于第i个询问,求出长度为Li的上升序列,如有多个,求出字典序最小的那个(即首先
x1最小,如果不唯一,再看x2最小……),如果不存在长度为Li的上升序列,则打印Impossible.

Input

  第一行一个N,表示序列一共有N个元素第二行N个数,为a1,a2,…,an 第三行一个M,表示询问次数。下面接M
行每行一个数L,表示要询问长度为L的上升序列。N<=10000,M<=1000

Output

  对于每个询问,如果对应的序列存在,则输出,否则打印Impossible.

Sample Input

6
3 4 1 2 3 6
3
6
4
5

Sample Output

Impossible
1 2 3 6
Impossible
 1 /**************************************************************
 2     Problem: 1046
 3     User: PencilWang
 4     Language: C++
 5     Result: Accepted
 6     Time:1860 ms
 7     Memory:952 kb
 8 ****************************************************************/
 9
10 #include<stdio.h>
11 #include<math.h>
12 #include<algorithm>
13 using namespace std;
14 int m,n;
15 int s[11000];
16 int d[11000],sb[11000],ass;
17 int bound(int L,int R,int num)
18 {
19     while(L<=R)
20     {
21         int mid=(L+R)>>1;
22         if(d[mid]>num)
23         L=mid+1;
24         else R=mid-1;
25     }
26     return L;
27 }
28 void fuck()
29 {
30     int t;
31     for(int i=n;i>=1;i--)
32     {
33     t=bound(1,ass,s[i]);
34     if(t>ass)ass++;
35     sb[i]=t;
36     if(s[i]>d[t])d[t]=s[i];
37     }
38     return ;
39 }
40 void suck(int num)
41 {
42     int star;
43     for(int i=1;i<=n;i++)
44     {
45         if(sb[i]>=num)
46         {
47         star=i;
48         num--;
49         break;
50         }
51     }
52     printf("%d",s[star]);
53     if(!num)return ;
54     for(int i=star+1;i<=n&&num;i++)
55     if(s[i]>s[star]&&sb[i]>=num)printf(" %d",s[i]),star=i,num--;
56     return ;
57 }
58 int main()
59 {
60     int num;
61     scanf("%d",&n);
62     for(int i=1;i<=n;++i)scanf("%d",s+i);
63     fuck();
64     scanf("%d",&m);
65     for(int i=1;i<=m;i++)
66     {
67     scanf("%d",&num);
68     if(num>ass)printf("Impossible\n");
69     else suck(num),printf("\n");
70     }
71     return 0;
72 }

转载于:https://www.cnblogs.com/PencilWang/p/6007421.html

刷题向》一道逆向思维题(BZOJ1046)(NORMAL)相关推荐

  1. java之黑帽子逻辑题_一道逻辑推理题有2种帽子,黑的和

    2006-10-08 我是骨招死灵,现有2个帽子,一个 第一个,因为可以给骷髅和骷髅支配及精灵等等都加一技能点(包括必修的尸体爆炸和伤害加深也加了一技能点,而另一个骷髅支配+3的就差多了. 附加个骨招 ...

  2. 哈尔滨初中几何:一道逆向思维几何题

    题目来源:哈三中的一道数学作业题 (开幕雷击) 介绍背景(初中生可以直接跳过这里) 事情是这样的: 本人高一,没上过补课班也没有预习,刚学向量,留了数学作业,遇到一道向量题,用几何方法做了两节晚自习没 ...

  3. 【每日一道智力题】之高楼扔只因蛋

    目录 前言: 题目: 解析: 总结: 博客主页:张栩睿的博客主页 欢迎关注:点赞+收藏+留言 系列专栏:c语言学习         家人们写博客真的很花时间的,你们的点赞和关注对我真的很重要,希望各位 ...

  4. 第三届山西省赛1004 一道大水题(scanf)

    一道大水题 时间限制: C/C++ 2000ms; Java 4000ms 内存限制: 65535KB 通过次数: 44 总提交次数: 1020 问题描述 Dr. Pan作为上兰帝国ACM的总负责人, ...

  5. 简单tarjan》一道裸题(BZOJ1051)(easy)

    这是一道水题,实际考察的是你会不会写强连通分量...(在BZOJ上又水了一道题) Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B ...

  6. 一天一道算法题--5.30---递归

    感谢微信平台:  一天一道算法题 --------每天多一点进步--------- 今天 休假 这题 也很水 能发现 规律就好 明天 再也不能这样了 forgive me ---------- 转载于 ...

  7. js逻辑训练题_二建冲刺必刷300题!精选历年真题+母子题+模考易错题!

    订阅公众号,回复[口诀],获取完整版实务口诀 你是不是常常疑惑为什么同样在做题,同样熬通宵,同样很努力,为什么有人顺利拿证,有人却因几分之差黯然落榜? 因为二建不仅拼努力的程度,更要拼对精准二建信息的 ...

  8. python考试编程题九道_一道逻辑推理题的程序实现(纯属娱乐)

    一份逻辑推理题的程序求解(纯属自娱自乐) 闲来无聊,看到QQ空间上转载了一份变态推理题的,至少表示我看了十多分钟无处下手,认识的人中有大神居然真的做出来了...我不知道他是们那么做的,不过作为编程爱好 ...

  9. CSU 1785: 又一道简单题

    1785: 又一道简单题 Submit Page    Summary    Time Limit: 5 Sec     Memory Limit: 128 Mb     Submitted: 602 ...

最新文章

  1. CuteEditor Html中显示Word格式粘贴的文章[CuteEditor WordToHtml]
  2. 黑鹰ASP教程(全部)下载
  3. 七、Linux串口编程
  4. wxWidgets:展示了如何在 wxWidgets 中使用 C++ 异常
  5. H3C认证路由交换网络高级工程师
  6. python的多线程应用前景_什么是线程(多线程),Python多线程的好处
  7. CleanCodeHandbook Chapter 6: Misc(35-38)
  8. hls和modelsim进行联合仿真
  9. [luoguP1352] 没有上司的舞会(DP)
  10. uniapp封装request
  11. 【技术认证知识】网络通信基础知识(华为HCIA认证网络基础)
  12. 在线解方程的计算机,解方程计算器在线使用 方程计算器如何在线使用
  13. 优化算法3--蚁群算法(原理)
  14. y2第一章 初始mybatis的上机3_MyBatis第一章
  15. Unity Shader零基础入门2:环境光、漫反射、高光
  16. [墨者学院] Windows硬盘文件分析取证(新建的用户名)
  17. python教程40-财务自动生成财务报表
  18. [luogu P4230]连环病原体
  19. html2canvas导出照片样式乱,html2canvas生成图片(图片样式和显示样式不一致)
  20. Qt QRegExp 正则表达式

热门文章

  1. 1-1docker加速器
  2. poj 1637 Sightseeing tour——最大流+欧拉回路
  3. pandas学习笔记——阅读官方文档
  4. (转载)控制反转(IoC)与依赖注入(DI)
  5. Hands-On Modeler (建模人员参与程序开发)
  6. php 小知识随手记 new self() 和new static()作用和区别
  7. JAVA可阻塞队列-ArrayBlockingQueue
  8. 实战SQL Server 2005镜像配置全过程
  9. scp和ssh如何连接指定端口的远程主机
  10. 文字投影_店铺门口投影灯,引领店铺新潮流