博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷p1020导弹拦截
阅读量:3949 次
发布时间:2019-05-24

本文共 690 字,大约阅读时间需要 2 分钟。

在这里插入图片描述

对于第一问,我们只需求最大不上升序列就行了,第二问,在思考很久后,发现是求最长上升序列。

#include
using namespace std;int a[100007];int cnt;int dp1[100007],dp2[100007];int main(){
while(cin>>a[++cnt]); cnt--; dp1[1]=a[1]; dp2[1]=a[1]; int len1=1,len2=1; for(int i=2;i<=cnt;i++) {
if(a[i]<=dp1[len1]) dp1[++len1]=a[i]; else {
int p1=upper_bound(dp1+1,dp1+len1+1,a[i],greater
())-dp1;//查找第一个大于a[i]的位置 dp1[p1]=a[i]; } if(a[i]>dp2[len2]) dp2[++len2]=a[i]; else {
int p2=lower_bound(dp2+1,dp2+len2+1,a[i])-dp2;//查找第一个大于等于a[i]的位置 dp2[p2]=a[i]; } } cout<
<
<

转载地址:http://psgwi.baihongyu.com/

你可能感兴趣的文章
es 在 7.X版本中去除type的概念
查看>>
elasticsearch bug Synchronize WriteReplicaResult callbacks
查看>>
java内存布局
查看>>
java常用技术栈
查看>>
git 撤销commit
查看>>
redis-缓存失效三种策略(FIFO 、LRU、LFU)
查看>>
jvm参数之堆转储配置
查看>>
pg客户端连接报错:不支援 10 验证类型。请核对您已经组态 ..
查看>>
Linux学习之常用高级命令
查看>>
java的三种随机数生成方式
查看>>
2021-01-21对map进行key或者value排序
查看>>
ConcurrentHashMap 1.7和1.8的区别
查看>>
try-catch-finally执行顺序及语句中对变量进行赋值的问题
查看>>
阻塞锁与自旋锁
查看>>
Java中的<< 和 >> 和 >>> 详细分析
查看>>
Java中字节Byte和位Bit的关系及最小值最大值表示
查看>>
spring启动时只执行一次的方法实现
查看>>
es分片分配问题及配置总结
查看>>
【面试官:select语句和update语句分别是怎么执行的
查看>>
redis-benchmark压力测试使用
查看>>