//<NOIP2013> 花匠
/*最优子结构性质,可以用动规。注意到存在30%的变态数据(1 ≤ n ≤ 100,000,0 ≤ h_i ≤1,000,000),因此应当找到线性的算法。A、B两种情况不仅不会增加复杂性,反而消除了对n奇偶性的讨论。两种情况可以简化为一种锯齿状的数列,只需讨论i前保留的花高度与花i的高度h[i]的关系即可。第i朵花的高度为h[i](1 <= i <= n),前i朵花“尾部为升序”的最长序列长度为S1[i],“尾部为降序”的最长序列长度为S2[i]。则有状态转移方程:1. (h[i] > h[i-1]):S1[i] = max(S1[i-1], S2[i-1] + 1);S2[i] = S2[i-1];2. (h[i] == h[i-1]):S1[i] = S1[i-1];S2[i] = S2[i-1];3. (h[i] < h[i-1]):S1[i] = S1[i-1];S2[i] = max(S2[i-1], S1[i-1] + 1);由此可以写出复杂度为O(n)的动态规划代码
*/
#include <cstdio>
using namespace std;
int maxm(int a, int b)
{if(a >= b )return a ;else return b;
}
const int maxn = 1000005;
int h[maxn] = {0};  //
int n;
int S1[maxn], S2[maxn] ;
//(s1[]尾部为升序,s2[]尾部为降序)
int main(void)
{freopen ("FlowerNOIP2013.in","r",stdin);freopen ("FlowerNOIP2013.out" ,"w",stdout);scanf("%d", &n);int i;for(i = 1; i <= n; i++)scanf("%d", &h[i]);S1[1] = S2[1] = 1;   //初始状态for(int i = 2;i <= n; i++){if(h[i] > h[i-1]) // case1{S1[i] = maxm(S1[i-1], S2[i-1]+1 );S2[i] = S2[i-1];}else if (h[i] == h[i-1])// case2{S1[i] = S1[i-1];S2[i] = S2[i-1];}else    //case 3{S1[i] = S1[i-1];S2[i] = maxm(S1[i-1]+1, S2[i-1] );}}printf("%d", maxm(S1[n], S2[n]) );return 0;
}

NOIP2013 花匠解题报告相关推荐

  1. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  2. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  3. 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...

  4. 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  5. 解题报告(十三)中国剩余定理(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  6. 解题报告(四)生成函数(ACM/ OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  7. 解题报告(八) prufer 序列与 Cayley 公式(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  8. 解题报告(一)E、(BZOJ4589)Hard Nim(博弈论 + FWT)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  9. 解题报告(五)组合计数(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. JQuery使用方法总结
  2. FlexUnit单元测试(第三章FlexUnit事件断言)
  3. DCMTK:DcmItem和DcmSequenceOfItem的路径功能测试程序
  4. Serverless在游戏运营行业进行数据采集分析的最佳实践 链接:
  5. mySQL教程 第5章 插入 更新与删除数据
  6. html td显示隐藏,显示/隐藏Html TR/TD
  7. ie6、ie7下overflow失效
  8. mysql 变量 视图_MySQL – 无法使用SET变量创建视图
  9. 串流类(istrstream)输入行为的探讨
  10. 汽车标志你认识多少?爱车族一定要了解哦!
  11. 华为 15 到 18 级的研发族社招工作岗位内推
  12. pip install报错 There was a problem confirming the ssl certificate…
  13. 工作十年之感悟 -- 兼谈生活与人生
  14. 四川一度智信:拼多多活动报名规则解读
  15. 【课内学习】数字电路Flip-Flop
  16. 在Ubuntu虚拟机中安装VMware tools异常中断 Unable to start services for VMware Tools
  17. 关于全行业通用AI产品的畅想
  18. javacv-音视频和图像处理
  19. 解析全球热点脑机接口平台(下)
  20. 邮件服务器 POP3协议 详解

热门文章

  1. 什么是Google AdWords关键字广告?
  2. 案例理解LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法
  3. 北京信息工程学院考研计算机,2017届信息工程学院考研光荣榜
  4. 一个猜灯谜的游戏(求解)
  5. 空间转录组学数据分析软件包和算法的比较分析
  6. C#上位机与西门子S7-200 Smart 网口通讯
  7. SolrCloud部署和使用手册
  8. c语言程序与设计教学设计,浅谈C语言程序设计课程的教学设计
  9. SeleniumWebDriver之FindElement和FindElements
  10. linux多窗口切换,linux screen 多窗口命令分析