寻找最优美做题曲线

题目链接:https://www.luogu.org/problemnew/show/P1704

题目大意:

求包含指定点的最长不降子序列(严格递增)

题解

首先我们发现

一个序列中,如果某个数严格大于它之前的所有数,严格小于它之后的所有数,那么在寻找最长上升子序列是一定会包含这个数,否则将这个数加入序列中可以得到更长的上升子序列。

(摘自洛谷题解)

那么我们要从原数列中抠出这么一段序列使得我们指定的点一定被选

所以就好办了

在一段数列中,把每一个大于指定点而且在它前面的小于指定点而且在它后面的删除

再对抠出来的数列做nlogn的求最长不降子序列长度(注意是严格递增,所以要特判等于的情况)

注意还要判impossible的情况

代码(原谅我代码风格变化了)

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#define rg register int
#define ll long long
#define RG register
#define il inline
using namespace std; il int gi() {
rg x=0,o=0;RG char ch=getchar();
while(ch!='-'&&(ch<'0'||'9'<ch)) ch=getchar();
if(ch=='-') o=1,ch=getchar();
while('0'<=ch&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar();
return o?-x:x;
} int n,k,p[250001],a[500001],b[500001],stk[500001]; int main() { n=gi(),k=gi();
for(rg i=1;i<=k;++i) p[i]=gi();
sort(p+1,p+1+k);
for(rg i=1;i<=n;++i) a[i]=gi(); for(rg i=2;i<=k;++i)
if(a[p[i-1]]>a[p[i]]) {
puts("impossible");
return 0;
} for(rg i=1;i<=k;++i) {
for(rg j=p[i-1]+1;j<=p[i]-1;++j)
if(a[p[i-1]]<a[j]&&a[j]<a[p[i]])
b[++b[0]]=a[j];
b[++b[0]]=a[p[i]];
}
for(rg i=p[k]+1;i<=n;++i)
if(a[i]>a[p[k]])
b[++b[0]]=a[i]; #define ub upper_bound
rg top=1;
stk[top]=b[1];
for(rg i=2;i<=b[0];++i) {
if(b[i]>stk[top]) stk[++top]=b[i];
else {
rg j=ub(stk+1,stk+1+top,b[i])-stk;
if(stk[j-1]!=b[i]) stk[j]=b[i];
}
}
printf("%d",top);
return 0;
}

(luogu1704)寻找最优美做题曲线 [TPLY]的更多相关文章

  1. DP【洛谷P1704】 寻找最优美做题曲线

    [洛谷P1704] 寻找最优美做题曲线 题目背景 nodgd是一个喜欢写程序的同学,前不久(好像还是有点久了)洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情, ...

  2. LIS【p1704】寻找最优美做题曲线

    Description 洛谷OJ刷题有个有趣的评测功能,就是系统自动绘制出用户的"做题曲线".所谓做题曲线就是一条曲线,或者说是折线,是这样定义的:假设某用户在第b[i]天AC了c ...

  3. luogu P1704 寻找最优美做题曲线

    题目背景 nodgd是一个喜欢写程序的同学,前不久(好像还是有点久了)洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情,他就打算用这些事情来出题恶心大家-- 题 ...

  4. [日记&做题记录]-Noip2016提高组复赛 倒数十天

    写这篇博客的时候有点激动 为了让自己不颓 还是写写日记 存存模板 Nov.8 2016 今天早上买了两个蛋挞 吃了一个 然后就做数论(前天晚上还是想放弃数论 但是昨天被数论虐了 woc noip模拟赛 ...

  5. AtCoder Grand Contest 11~17 做题小记

    原文链接https://www.cnblogs.com/zhouzhendong/p/AtCoder-Grand-Contest-from-11-to-20.html UPD(2018-11-16): ...

  6. noip做题记录+挑战一句话题解?

    因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( ...

  7. 小学生轻松做题App

    作业链接:https://edu.cnblogs.com/campus/fzzcxy/2016SE/homework/2180 原型模型设计工具:墨刀 原型模型链接:https://modao.cc/ ...

  8. NOIP2016考前做题(口胡)记录

    NOIP以前可能会持续更新 写在前面 NOIP好像马上就要到了,感觉在校内训练里面经常被虐有一种要滚粗的感觉(雾.不管是普及组还是提高组,我都参加了好几年了,结果一个省一都没有,今年如果还没有的话感觉 ...

  9. UOJ 做题记录

    UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...

随机推荐

  1. 初识vps,域名与购买,初步配置

    终于还是到了这一天,不管我们是不是程序员,当我们想拥有自己的一个的博客,当我们想有自己的一个空间,当我们想在网上有一个自己可以随心所欲编写任何不被限制的仅仅是酷炫的效果,当我们想收录自己的技术,经历, ...

  2. Postfix+dovecot搭建简单邮箱服务器

    实验环境: (1)修改主机名:hostnamectl set-hostname mail.meilintong.com 退出,重新登陆 (2)关闭selinux (3)关闭防火墙 1.安装postfi ...

  3. pinvoke 数据交互笔记

    intptr to array string string[]  _outputStrArray=null;  int channelCount = 0;///返回数组大小            In ...

  4. MVC5中使用Log4Net

    最早搜到的是这篇: http://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET- ...

  5. 机器学习之支持向量机(三):核函数和KKT条件的理解

    注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对 ...

  6. mysql4 - 高级操作

    一.联结(使用 where(早) 和 join(晚) 都可以完成联结) 1.1 从 Teacher 表和 Profession 表中,查询出老师的名字和所属专业的名称. SELECT t.`l_nam ...

  7. Centos下安装php扩展sphinx

    官方地址:http://pecl.php.net/package/sphinx wget http://pecl.php.net/get/sphinx-1.3.3.tgz tar -zxvf sphi ...

  8. Mysql(六):数据备份、pymysql模块

    一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接 ...

  9. [Essay] Apache Flink:十分可靠,一分不差

    Apache Flink:十分可靠,一分不差 Apache Flink 的提出背景 我们先从较高的抽象层次上总结当前数据处理方面主要遇到的数据集类型(types of datasets)以及在处理数据 ...

  10. __proto__ 与 prototype

    先来做个复习,ES5中有有几种数据类型呢? 5种基本数据类型 Undefined Null Boolean Number String 1种复杂数据类型 Object 除了基本数据类型,万物皆对象,记 ...