寻找最优美做题曲线

题目链接: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. jquery $(document).ready() 与window.onload的区别(转)

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 windo ...

  2. 构建企业级Nginx+Keepalived集群架构

    随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx. Nginx高性能.稳定性成为IT人士青睐的http和反向代理服务器,今天我们来实战构建Nginx+Keepalived高可用架 ...

  3. 哪些CSS是可以被继承的--简单整理

    那些CSS是可以被继承的--简单整理1.文本相关属性是继承的:font-size,font-family,line-height,text-index等2.列表相关属性是继承的:list-style- ...

  4. [翻译]【目录】编写高性能 .NET 代码

    本篇是 Writing High-Performance .NET Code 的目录索引,翻译内容不定时更新,目录也会同步修改. 性能测量及工具 选择什么来衡量 平均数vs百分比 工具介绍 Visua ...

  5. P2P技术如何将实时视频直播带宽降低75%?

    本文内容来自学霸君资深架构师袁荣喜的技术分享. 1.前言 实时视频直播经过去年的千播大战后已经成为互联网应用的标配技术,但直播平台的成本却一直居高不下,各个平台除了挖主播.挖网红以外,其背后高额的带宽 ...

  6. C语言_scanf()和getchar() 使用[粗俗易懂]

    原文地址:http://blog.csdn.net/hao5743/article/details/6939661/,以下是我重新整理的以下. 问题描述一:[分析scanf()和getchar()读取 ...

  7. 关于C/S框架网单表绑定,查询

    这种绑定暂时支持单表,并且不支持主键自增长!保存,删除,查看,修改用框架现成的. 1.先生成tb.bll.dal三个类.框架有生成工具,在debug文件里面有个叫CSFramework.Tools.C ...

  8. 剑指offer随练

    合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路:使用递归的方法,合并头节点,然后对剩下的链表接着合并头节点,直到合并完 ...

  9. hihoCoder 1513 : 小Hi的烦恼 位运算好题

    思路:考虑第i个同学,第一门课排名比他靠前的同学的集合是S1,第二门课是S2...第五门课是S5,很明显比这个同学每门课程都优秀的同学就是S1&S2&S3&S4&S5, ...

  10. UVA-804 模拟

    将每个translation的输入和输出place全部记录下来,模拟即可,当所有translation都不能工作时,就说明dead了. AC代码: #include<cstdio> #in ...