CodeForces 447C DZY Loves Sequences DP
题目:click here
题意:求给定序列更改其中一个元素后的最长连续上升子序列的长度
分析:最长的连续子序列有2种,一种是严格上升(没有更改元素)的长度加1,一种是两段严格上升的加起来。
1 #include <bits/stdc++.h> 2 using namespace std; 3 #define F first 4 #define S second 5 #define pb push_back 6 #define power(a) ((a)*(a)) 7 #define ENTER printf("\n"); 8 typedef unsigned long long ll; 9 const int INF = 0x3f3f3f3f; 10 const double EPS = 1e-8; 11 const int M = 1e5+5; 12 13 int n, ret; 14 int a[M]; 15 int dps[M]; // dps[i]保存以i开头的最长连续上升子序列 16 int dpe[M]; // dpe[i]保存以i结束的最长连续上升子序列 17 void solve() { 18 ret = dpe[0] = dps[n-1] = 1; 19 for( int i=1; i<n; i++ ) 20 if( a[i] > a[i-1] ) dpe[i] = dpe[i-1] + 1; 21 else dpe[i] = 1; 22 for( int i=n-2; i>=0; i-- ) 23 if( a[i] < a[i+1] ) dps[i] = dps[i+1] + 1; 24 else dps[i] = 1; 25 for( int i=0; i<n; i++ ) 26 if( a[i+1]-a[i-1] >= 2 ) ret = max( ret, dps[i+1]+dpe[i-1]+1 ); 27 else ret = max( ret, max( dps[i+1]+1, dpe[i-1]+1 ) ); 28 printf("%d\n", ret); 29 } 30 31 int main() { 32 while( ~scanf("%d", &n ) ) { 33 for( int i=0; i<n; i++ ) 34 scanf("%d", a+i); 35 solve(); 36 } 37 return 0; 38 }
转载于:https://www.cnblogs.com/TaoTaoCome/p/4744539.html
CodeForces 447C DZY Loves Sequences DP相关推荐
- Codeforces 447C - DZY Loves Sequences
447C - DZY Loves Sequences 思路:dp 代码: #include<bits/stdc++.h> using namespace std; #define ll l ...
- Codeforces - DZY Loves Sequences
题目链接:Codeforces - DZY Loves Sequences 做一个前后缀连续 LIS ,然后枚举每个位置即可. 注意细节. AC代码: #pragma GCC optimize(&qu ...
- A - DZY Loves Sequences
DZY Loves Sequences b[i] 为 i 开始上升序列的右边界. //#pragma GCC optimize(2) //#pragma GCC optimize(3,"Of ...
- Codeforces 444C DZY Loves Colors 线段树区间更新
// Codeforces 444C DZY Loves Colors 线段树区间更新// 题目链接:// http://codeforces.com/problemset/problem/444/C ...
- CodeForces 444C. DZY Loves Physics(枚举+水题)
转载请注明出处:http://blog.csdn.net/u012860063/article/details/37509207 题目链接:http://codeforces.com/contest/ ...
- Codeforces 446C —— DZY Loves Fibonacci Numbers(线段树)
题目:DZY Loves Fibonacci Numbers 题意比較简单,不解释了. 尽管官方的题解也是用线段树,但还利用了二次剩余. 可是我没有想到二次剩余,然后写了个感觉非常复杂度的线段树,还是 ...
- Codeforces 446C. DZY Loves Fibonacci Numbers【斐波那契+线段树】
C. DZY Loves Fibonacci Numbers [题目描述] 传送门 [题解] 我们可以知道斐波那契数列有两个性质: ∑i=1nFi=Fn+2−F2\sum_{i=1}^{n} F_i= ...
- Codeforces 446C. DZY Loves Fibonacci Numbers (Fibonacci + 线段树)
Description In mathematical terms, the sequence F n of Fibonacci numbers is defined by the recurrenc ...
- Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
原题链接:http://codeforces.com/problemset/problem/446/A 题意:给一个长度为n的序列,最多可以修改一个位置的数,求最长连续上升子序列. 题解:当a[i+1 ...
最新文章
- 扩增子三部曲:2分析流程(共7节万字)
- ajax怎样获得表头信息,layui.table动态获取表头和列表数据示例
- java callable用法_在Java中使用Callable和Future
- 计算机主机配置有哪些,电脑主机配置清单有哪些 电脑主机配置清单及价格
- 4-3:TCP协议之UDP协议
- python image.open函数_PIL.Image.open和cv2.imread的比较与相互转换的方法
- test1 exam5定义一个可以精确表示年、月、日、小时、分、秒的结构体
- Window 2008 server DNS 无法解析ISA WPAD
- R-CNN学习笔记1:Selective Search for Object Recognition
- java获取文件后缀名(正则表达式)+文件名
- [HP NX6320] 安装 windows2003 操作系统 全过程
- Python打造一款属于自己的翻译词典
- Java中Date时区的转换
- H3C 交换机web页
- IPV4的特殊地址(包括私网地址)
- SSD ECC中的LDPC编解码原理
- c语言程序 蟠桃记,蟠桃记
- 全球土地利用数据ESRI 10m Land Cover 2020 in GEE(Google Earth Engine)
- 码云的首次使用—将本地项目上传到码云
- 高数等价无穷小替换公式