bzoj 1046: [HAOI2007]上升序列 LIS

uniapp开发AndroidAPP集成支付宝支付及问题处理(商家订单参数异常等),集成微信小程序支付及问题处理(运行真机调试白屏) 2、选择支付宝支付,调用支付接口唤起支付宝支付。 阅读详情

                                       bzoj  1046 上升序列

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1046

Description

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

Input

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

Output

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

Sample Input

6
3 4 1 2 3 6
3
6
4
5

Sample Output

Impossible
1 2 3 6
Impossible

HINT

数据范围

N<=10000

M<=1000



通常我们可以求以a[i]结尾的最长上升子序列f[i],那么这道题就可以将数组倒过来,求最长下降子序列即可

#include<cstdio>
#include<iostream>
#include<algorithm>
#define INF 0x3f3f3f3f
#define MAXN 111111

using namespace std;

int n,a[MAXN],b[MAXN],dp[MAXN];
int len,p,cas,m;

inline void read()
{
    scanf("%d",&n);
    for(int i=n;i>=1;i--)
        scanf("%d",&a[i]);
}

inline void step1()
{
     len=1;
     for(int i=1;i<=n;i++)
        b[i]=-INF;
     b[0]=INF;
     b[1]=a[1];
     dp[1]=1;
     for(int i=2;i<=n;i++)
     {
         int l=0,r=len+1,res,mid;
         while(l<=r)
         {
             mid=(l+r)/2;
             if(b[mid]>a[i])
                res=mid,l=mid+1;
              else
              r=mid-1;
         }
         len=max(res+1,len);
         b[res+1]=max(b[res+1],a[i]);
         dp[i]=res+1;
     }
    reverse(a+1,a+1+n);
    reverse(dp+1,dp+1+n);
}

inline void step2()
{
     if(len<m)
       {
           printf("Impossible\n");
           return ;
       }
       int last=-INF;
       for(int i=1;i<=n&&m!=0;i++)
        if(dp[i]>=m&&a[i]>last)
        {
            if(m!=1)
             printf("%d ",a[i]),m--,last=a[i];
             else printf("%d",a[i]),m--,last=a[i];
        }

       printf("\n");


}

int main()
{
    read();
    step1();
    scanf("%d",&cas);

    for(int i=1;i<=cas;i++)
    {
      scanf("%d",&m);
      step2();
    }

     return 0;


}





HDMI接口及其在编程中的应用 在编程中,我们可以使用HDMI接口来控制和管理连接到计算机的HDMI设备。本文将介绍HDMI接口的基本原理以及如何在编程中使用HDMI接口。在编程中,我们可以使用HDMI接口来控制和管理连接到计算机的HDMI设备。本文介绍了HDMI接口的基本原理,并提供了使用Python编程语言和相关库实现HDMI接口应用的示例代码。我们可以使用编程语言提供的音频库来生成和播放音频,并将其通过HDMI接口输出到连接的设备上。我们可以使用编程语言提供的音频库来生成和播放音频,并将其通过HDMI接口输出到连接的设备上。 阅读详情

相关推荐

UE5游戏逆向实战:用FModel提取.pak文件中的3D模型(附Dumper-7避坑指南)

本文详细介绍了在UE5游戏逆向工程中使用FModel提取.pak文件中3D模型的实战技巧,包括Dumper-7工具的深度配置与避坑指南。针对UE5特有的unversioned属性系统,提供了从源码编译到智能注入的全链路解决方案,帮助开发者高效获取游戏资产并优化处理流程。

weixin_30374009的博客 495

NOIP模拟 上升序列(最长上升子序列+状压DP)

【题目描述】 给出一个长度为 m 的上升序列 A(1 ≤ A[i]≤ n), 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS. 【输入格式】 第一行两个整数 n,m. 接下来一行 m 个整数, 表示 A. 【输出格式】 一行一个整数表示答案. 【样例输入】 5 3 1 3 4 【输出格式】 11 【备注】 对于前 3...

weixin_30275415的博客 248

SAP FICO资产明细表开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

SAP FICO资产明细表开发说明书(包括源代码,测试样例及FS)

我好像病了的博客 1468

1046: [HAOI2007]上升序列 - BZOJ

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

weixin_30322405的博客 144

MySQL 一一 MySQL基本使用

1、数据库 简单来说,所谓的数据库就是存储数据的容器,而且是永久存储的。 2、为什么需要数据库 3、为什么要学习MySQL数据库 最早MySQL数据,瑞典AB公司开发的一款开源型的关系型数据库。 随着时间的推移,瑞典AB公司把MySQL数据库转让给Sun公司(Java语言的创始公司) 后来,Sun公司经营不善,又把MySQL数据库转让给甲骨文公司(Oracle数据库) 4、数

Guizy 7万+

推荐一个直接用于项目开发的PID库!很好用,很稳定

关注、星标公众号,不错过精彩内容大家好,我是小麦。最近有朋友问到有没有现成的C语言PID库。当然有了!现在我就准备给大家安利一下了。一般同学会去某度上搜,看到各种各样版本的PID示例,或者...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 9024

2018.10.05 NOIP模拟 上升序列(状压dp)

传送门 状压dp好题。 首先需要回忆O(nlogn)O(nlog n)O(nlogn)求lislislis的方法,我们会维护一个单调递增的ddd数组。 可以设计状态f(s1,s2)f(s1,s2)f(s1,s2)表示选取的数的集合是s1s1s1,然后d数组中元素的出现情况是s2s2s2。 这样转移是很简单的。 但时空都无法承受。 于是我们考虑优化,不...

weixin_30257433的博客 176

实战落地!Python抓取股票历史数据:开盘/收盘/成交量全维度爬取(附数据清洗+可视化)

股票历史数据抓取的核心是“数据准确性+完整性”,网页爬取适合小批量、个性化需求,API调用适合批量、标准化需求。多市场数据抓取:适配港股(00700.HK)、美股(AAPL)的抓取逻辑;高频数据抓取:抓取分钟级、小时级行情数据,用于短线量化策略;财务数据扩展:抓取市盈率、市净率、净利润等财务指标,结合价格数据做基本面分析;量化策略回测:将清洗后的数据接入Backtrader、VNPY等量化框架,验证策略有效性。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1739

1711: 上升序列 (动态规划)

1711: 上升序列 时间限制: 1 Sec  内存限制: 128 MB 提交: 33  解决: 6 [提交][状态][讨论版] 题目描述 我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增(严格递增即相邻元素不存在相等的情况)。其中无论是修改前还是修改后,每个元素都必须是整数。 请输出最少需要修改多少个元素。 输入 第一行输入

yanghui07216的博客 533

0 基础学前端:100 天拿 offer 实战课(第 16 天)—— JS 数组高级方法:数据处理效率翻倍,代码更简洁

方法名核心作用回调函数返回值返回结果适用场景map数据转换转换后的新元素新数组(长度与原数组一致)格式转换、新增字段、生成 DOM 字符串filter数据筛选true(保留)/false(过滤)新数组(符合条件的元素)筛选符合条件的元素(如未完成计划、今天的评论)reduce数据汇总新的累加值任意类型(数字、对象等)求和、计数、分组、多数据汇总find查找元素true(匹配)/false(不匹配)第一个匹配的元素 /undefined。

苏打水.X的博客 133

华为od 面试八股文_Spring_03_含答案

控制反转IOC是一个很大的概念,可以用不同的方式来实现。其主要实现方式有两种:依赖注入和依赖查找依赖注入;

MISAYAONE的博客 2341

【BZOJ】【P1046】【HAOI2007】【上升序列】【题解】【dp】

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1046 求以i为开头的

退役狗的专栏 665

全面解析量化价值投资多因子模型的原理

明明知道“买便宜的好公司”是价值投资的核心,但面对3000+只A股,如何快速筛选出“便宜又好”的标的?主观判断总被情绪干扰——明明PE很低的股票,买了却不涨;或者因为“感觉”错过牛股?想规模化投资,但手动分析100只股票就要花一周,根本无法覆盖全市场?量化价值投资的多因子模型,正是解决这些问题的钥匙。它将价值投资的核心逻辑(“便宜”“好公司”)转化为可量化的因子,用数学模型替代主观判断,实现系统化筛选、可回测验证、规模化复制的投资决策。为什么多因子模型能有效预测股票收益?

AI天才研究院 1058

BZOJ 1046: [HAOI2007]上升序列 LIS+贪心

title BZOJ 1046 LUOGU 2215 Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ax2 < … < axm)。那么就称P为S的一个上升序列。如果有多个P满足条件,那么我们想求字典序最小的那个。任务给...

dilu0653的博客 173

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

BZOJ 1046: [HAOI2007]上升序列 LIS

1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 5004  Solved: 1741 [Submit][Status][Discuss] Description   对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 Input

BlackJack 370

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

BZOJ 1046: [HAOI2007]上升序列 LIS -dp

1046: [HAOI2007]上升序列 Time Limit:10 SecMemory Limit:162 MBSubmit:3438Solved:1171[Submit][Status][Discuss] Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < ...

weixin_30633949的博客 107

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

题目挺坑的..但是不难.先反向做一次最长下降子序列.然后得到了d(i),以i为起点的最长上升子序列,接下来贪心,得到字典序最小.-------------------------------------------------------------------#include<cstdio>#define rep(i,n) for(int i=0;i<n;++i)usin...

weixin_30678349的博客 87

BZOJ1046: [HAOI2007]上升序列(LIS)

Time Limit:10 SecMemory Limit:162 MBSubmit:5740Solved:2025[Submit][Status][Discuss] Description   对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ...

weixin_30840253的博客 134

lis+树状数组+贪心--bzoj1046: [HAOI2007]上升序列

传送门 题意看错wa了两次诶···题上说的不是数值字典序最小的 而是位置字典序最小的 所以可以离散化倒着来一遍最长下降子序列然后贪心 nlogn树状数组超好用啊 但是这道题因为是最长下降子序列,所以要反过来 query的时候要查找&gt;=x的和 今天学到了树状数组新姿势0.0 就是普通的树状数组是修改[x,n]的,查询[1,x]的 那么把x改成n-x+1,相当于把这个数组反过来...

继续学吧 257

【BZOJ】1046: [HAOI2007]上升序列(dp)

http://www.lydsy.com/JudgeOnline/problem.php?id=1046 一直看错题。。。。。。。。。。。。。。。。。。。。。。。 这是要求位置的字典序啊QQQAAAQQQ 。。 那么就lis后直接从前往后扫就行了。。 注意输出方案不要写错。。(wa了好多发。。。) 拓展:同时如果求答案的字典序最小,那么我们可以先对所有元素排序,然后一个个去试...

146

BZOJ 1046([HAOI2007]上升序列-LIS二分O(nlogn))

1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1614  Solved: 504 [Submit][Status] Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 Input 第一行一个N,表示序

nike0good |Oier&ACMer | 熟能生巧 1830

BZOJ1046: [HAOI2007]上升序列

这题我WA了三发还是拍出来的你敢信??

QWsin的博客 658

BZOJ1046 [HAOI2007]上升序列 【LIS + 字典序最小】

1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 5410  Solved: 1877 [Submit][Status][Discuss] Description   对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 2 出S序

Mychael的无声乐章 342

[HAOI2007]上升序列

题目:BZOJ1046、洛谷P2215、codevs1714。 题目大意:对于一个给定的S={a1,a2,a3,…,an},若有P={$a_{x1},a_{x2},a_{x3},…,a_{xm}$},满足(x1<x2<…<xm) 且($a_{x1}<a_{x2}<…<a_{xm}$)。那么就称P为S的一个上升序列。如果有多个P满足条件,那么我们想求字...

150

[BZOJ 1046][HAOI 2007]上升序列(nlogn的LIS算法)

题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1046 有人说这题是NOIP难度?表示怀疑,蒟蒻认为此题难度略大于NOIP。。。。 这个题的序列长度nhttp://www.slyar.com/blog/longest-ordered-subsequence.html中有详细讲解。 由于题目题意要求,我们需要求出以每个数字开头

某沙茶的OI代码库 1110

【LIS】BZOJ1046(HAOI2007)[上升序列]题解

题目概述 给出 {an}" role="presentation">{an}{an}\{a_n\} ,求下标字典序最小的上升子序列。 解题报告 水题吧……先求出 fi" role="presentation">fifif_i 表示以 i" role="presentation">iii 为起点的最长上升子序列,然后只需要先找出第一个 fans1>x" role="presentat

ZigZagK的博客 460
上一篇: bzoj 1406: [AHOI2007]密码箱 数学
下一篇: bzoj 3670 [Noi2014]动物园
DJS_K_D
博客等级 码龄12年 2粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值