Codeforces 446A. DZY Loves Sequences (线性DP)
<题目链接>
题目大意:
给定一个长度为$n$的序列,现在最多能够改变其中的一个数字,使其变成任意值。问你这个序列的最长严格上升子段的长度是多少。
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+;
int a[N],dp2[N],dp1[N]; int main(){
int n,ans;cin>>n;
for (int i=;i<=n;++i)cin>>a[i];
a[n+]=1e9+;
for (int i=;i<=n;++i) {
if (a[i]>a[i-])dp1[i]=dp1[i-]+;
else dp1[i]=;
ans=max(ans,dp1[i]);
//得到不改变数字的最长上升子段
}if(ans<n)ans++; ///因为至少能够改变最长上升子段首、尾的数字,使得它长度再增加1
for (int i=n;i>=;--i){
if (a[i+]>a[i]) dp2[i]=dp2[i+]+;
else dp2[i]=; //处理一下后缀的最长上升子序列
if (a[i+]-a[i-]>) ans=max(ans,dp1[i-]+dp2[i+]+); //如果第i个能够变成a[i-1]~a[i+1]之间的某个数字,它就能将这两段拼接起来
}
cout<<ans<<endl;
}
Codeforces 446A. DZY Loves Sequences (线性DP)的更多相关文章
- CodeForces - 446A DZY Loves Sequences(dp)
		题意:给定一个序列a,求最长的连续子序列b的长度,在至多修改b内一个数字(可修改为任何数字)的条件下,使得b严格递增. 分析: 1.因为至多修改一个数字,假设修改a[i], 2.若能使a[i] < ... 
- codeforces 446A DZY Loves Sequences
		vjudge 上题目链接:codeforces 446A 大意是说最多可以修改数列中的一个数,求最长严格递增的连续子序列长度. 其实就是个 dp 的思想,想好思路后交上去没想到一直 wa 在第二个测试 ... 
- CodeForces 446A DZY Loves Sequences (DP+暴力)
		题意:给定一个序列,让你找出一个最长的序列,使得最多改其中的一个数,使其变成严格上升序列. 析:f[i] 表示以 i 结尾的最长上升长度,g[i] 表示以 i 为开始的最长上升长度,这两个很容易就求得 ... 
- codeforces#FF DIV2C题DZY Loves Sequences(DP)
		题目地址:http://codeforces.com/contest/447/problem/C C. DZY Loves Sequences time limit per test 1 second ... 
- Codeforces Round #FF  446A DZY Loves Sequences
		预处理出每一个数字能够向后延伸多少,然后尝试将两段拼起来. C. DZY Loves Sequences time limit per test 1 second memory limit per t ... 
- Codeforces 447C - DZY Loves Sequences
		447C - DZY Loves Sequences 思路:dp 代码: #include<bits/stdc++.h> using namespace std; #define ll l ... 
- codeforces  447C. DZY Loves Sequences  解题报告(446A)
		题目链接:http://codeforces.com/problemset/problem/447/C 题目意思:给出 一个 包含 n 个数的序列你,从中需要找出这个序列的最长子串,满足在里面只修改其 ... 
- Codeforces 447 C DZY Loves Sequences【DP】
		题意:给出一列数,在这个序列里面找到一个连续的严格上升的子串,现在可以任意修改序列里面的一个数,问得到的子串最长是多少 看的题解,自己没有想出来 假设修改的是a[i],那么有三种情况, 1.a[i]& ... 
- CodeForces 447C DZY Loves Sequences DP
		题目:click here 题意:求给定序列更改其中一个元素后的最长连续上升子序列的长度 分析:最长的连续子序列有2种,一种是严格上升(没有更改元素)的长度加1,一种是两段严格上升的加起来. #inc ... 
随机推荐
- 老男孩Python全栈学习 S9 日常作业 010
			1.写函数,接收n个数字,求这些参数数字的和. def func1(*Num): num = 0 for i in Num: num += i return num 2.读代码,回答:代码中,打印出来 ... 
- Vue学习笔记六:v-model 数据双向绑定
			目录 v-model简介和适用范围 新建HTML 所见即所得 v-model模拟简易计算器 v-model简介和适用范围 Vue的一大特点之一就是数据的双向绑定,v-model就是实现这个功能的指令, ... 
- IDEA 导入 Tomcat9 源码
			源码下载(Source Code Distributions)地址:https://tomcat.apache.org/download-90.cgi tomcat 和 servlet 以及 jdk ... 
- Maven(二)名词、命令、仓库、依赖、私服
			这篇文章将Maven其他内容做一个介绍. 一.名词 ①:localRepository 本地仓库路径,位于maven/conf/settings.xml中. ②:project 项目. ③:pom ... 
- [图解Java]ReentrantLock重入锁
			图解ReentrantLock 0. demo 我先给出一个demo, 这样大家就可以根据我给的这段代码, 边调试边看源码了. 还是那句话: 注意"My" , 我把Reentran ... 
- 计算机网络之JSONP跨域
			JSONP跨域实现原理 百度联想词跨域实现 一.JSONP跨域实现原理 1.Web页面使用<script>引入JS文件时不受同源策略的影响.准确的说,所有拥有src属性的标签都不受同源策略 ... 
- c++对象的存储空间
			1. 非静态成员 2. 静态成员变量 静态成员变量不占对象的内存空间 3. 成员函数 成员函数不占内存空间 4. 析构函数 5. 类中有虚析构函数 6. 继承空类和多重继承空类存储空间的计算 7. t ... 
- python 正则指北之我的总结
			本文经本人搜索网络加上个人理解整理而成,如有侵权,请告知,会立即删除! 正则引擎大体上可分为不同的两类:DFA和NFA,而NFA又基本上可以分为传统型NFA和POSIX NFA. DFA Determ ... 
- day23单例模式 , 日志处理 , 项目结构目录
			# day23笔记 ## 一.补充,作业 ### 1.字符串格式化 ```pythonmsg = "我是%(n1)s,年龄%(n2)s" % {'n1': 'alex', 'n2' ... 
- 解决MySQL Access denied for user 'root'@'IP地址' 问题
			1.mysql -u root -p 登陆进MYSQL: 2.执行以下命令: GRANT ALL PRIVILEGES ON *.* TO 'your name'@'%' IDENTIFIED BY ... 
