题目: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相关推荐

  1. Codeforces 447C - DZY Loves Sequences

    447C - DZY Loves Sequences 思路:dp 代码: #include<bits/stdc++.h> using namespace std; #define ll l ...

  2. Codeforces - DZY Loves Sequences

    题目链接:Codeforces - DZY Loves Sequences 做一个前后缀连续 LIS ,然后枚举每个位置即可. 注意细节. AC代码: #pragma GCC optimize(&qu ...

  3. A - DZY Loves Sequences

    DZY Loves Sequences b[i] 为 i 开始上升序列的右边界. //#pragma GCC optimize(2) //#pragma GCC optimize(3,"Of ...

  4. Codeforces 444C DZY Loves Colors 线段树区间更新

    // Codeforces 444C DZY Loves Colors 线段树区间更新// 题目链接:// http://codeforces.com/problemset/problem/444/C ...

  5. CodeForces 444C. DZY Loves Physics(枚举+水题)

    转载请注明出处:http://blog.csdn.net/u012860063/article/details/37509207 题目链接:http://codeforces.com/contest/ ...

  6. Codeforces 446C —— DZY Loves Fibonacci Numbers(线段树)

    题目:DZY Loves Fibonacci Numbers 题意比較简单,不解释了. 尽管官方的题解也是用线段树,但还利用了二次剩余. 可是我没有想到二次剩余,然后写了个感觉非常复杂度的线段树,还是 ...

  7. Codeforces 446C. DZY Loves Fibonacci Numbers【斐波那契+线段树】

    C. DZY Loves Fibonacci Numbers [题目描述] 传送门 [题解] 我们可以知道斐波那契数列有两个性质: ∑i=1nFi=Fn+2−F2\sum_{i=1}^{n} F_i= ...

  8. Codeforces 446C. DZY Loves Fibonacci Numbers (Fibonacci + 线段树)

    Description In mathematical terms, the sequence F n of Fibonacci numbers is defined by the recurrenc ...

  9. Codeforces Round #FF (Div. 1) A. DZY Loves Sequences

    原题链接:http://codeforces.com/problemset/problem/446/A 题意:给一个长度为n的序列,最多可以修改一个位置的数,求最长连续上升子序列. 题解:当a[i+1 ...

最新文章

  1. 扩增子三部曲:2分析流程(共7节万字)
  2. ajax怎样获得表头信息,layui.table动态获取表头和列表数据示例
  3. java callable用法_在Java中使用Callable和Future
  4. 计算机主机配置有哪些,电脑主机配置清单有哪些 电脑主机配置清单及价格
  5. 4-3:TCP协议之UDP协议
  6. python image.open函数_PIL.Image.open和cv2.imread的比较与相互转换的方法
  7. test1 exam5定义一个可以精确表示年、月、日、小时、分、秒的结构体
  8. Window 2008 server DNS 无法解析ISA WPAD
  9. R-CNN学习笔记1:Selective Search for Object Recognition
  10. java获取文件后缀名(正则表达式)+文件名
  11. [HP NX6320] 安装 windows2003 操作系统 全过程
  12. Python打造一款属于自己的翻译词典
  13. Java中Date时区的转换
  14. H3C 交换机web页
  15. IPV4的特殊地址(包括私网地址)
  16. SSD ECC中的LDPC编解码原理
  17. c语言程序 蟠桃记,蟠桃记
  18. 全球土地利用数据ESRI 10m Land Cover 2020 in GEE(Google Earth Engine)
  19. 码云的首次使用—将本地项目上传到码云
  20. 高数等价无穷小替换公式

热门文章

  1. 深蓝学院《从零开始手写VIO》作业七
  2. openssl与cryptoAPI交互AES加密解密
  3. VC6中用DOM遍历网页中的元素
  4. 中国-中东欧国家特色农产品 云上国际农民丰收节贸易会
  5. Arduino control Eeprom by IIC method of using device address in Arduino
  6. 【算法】有关点分治的一些理解与看法
  7. Bagging和Boosting的区别(面试准备)
  8. ssl初一组周六模拟赛【2018.3.31】
  9. 让服务器iis支持.apk文件下载的设置方法
  10. 修改android virtual device路径