WXYZ与绿豆饼
来源:互联网 发布:数据库概念模型图事例 编辑:程序博客网 时间:2024/04/20 08:00
Problem Description
WXYZ很喜欢吃绿豆饼,而且每次都能吃很多。但是担心WXYZ长的太胖,妈妈把买回来的一卷卷的绿豆饼排成一列(每卷绿豆饼的高度可能是不一样的),规定WXYZ只能取其中一段连续的并且高度严格上升的绿豆饼来吃。
可怜的WXYZ发现,根据这个规则,每次他只能拿到很少的绿豆饼,于是他想到了一个办法:趁妈妈不注意的时候改变某一卷绿豆饼的高度(压扁或拉长它)。WXYZ知道,这样就可以拿到一段长得多的连续的而且高度严格上升的绿豆饼了。
真是太聪明了!不过应该改变哪一卷绿豆饼的高度才能使得可以拿走的连续的一段高度严格上升的绿豆饼最多呢?嗯,这个问题就交给你了,如果你能成功解答说不定WXYZ会分给你一些绿豆饼呢。
注意:修改之后绿豆饼的高度最小为1,最大为10000,并且高度只能是整数。
可怜的WXYZ发现,根据这个规则,每次他只能拿到很少的绿豆饼,于是他想到了一个办法:趁妈妈不注意的时候改变某一卷绿豆饼的高度(压扁或拉长它)。WXYZ知道,这样就可以拿到一段长得多的连续的而且高度严格上升的绿豆饼了。
真是太聪明了!不过应该改变哪一卷绿豆饼的高度才能使得可以拿走的连续的一段高度严格上升的绿豆饼最多呢?嗯,这个问题就交给你了,如果你能成功解答说不定WXYZ会分给你一些绿豆饼呢。
注意:修改之后绿豆饼的高度最小为1,最大为10000,并且高度只能是整数。
Input
输入有多组测试数据,每组测试数据的第1行为一个正整数N(<=10000),表示有绿豆饼的卷数。
输入的第2行为N个正整数,表示这N卷绿豆饼的高度,两个正整数之间会有一个空格,高度值不会大于10000
输入的第2行为N个正整数,表示这N卷绿豆饼的高度,两个正整数之间会有一个空格,高度值不会大于10000
Output
对于每组测试数据输出一行,包括一个整数,表示修改之后最长的一段连续且高度严格上升的绿豆饼的长度。
Sample Input
66 1 2 2 4 44
Sample Output
4
#include<stdio.h>#define maxn 10001//a[i]表示第i卷的高度,b[]表示向前延伸的最远距离,c[]表示向后延伸的最远距离int n,a[maxn],b[maxn],c[maxn];int main(){ //mx用于存储最终答案,i和tmp为临时变量 int i,mx,tmp; while(~scanf("%d",&n)) { for(i=0;i<n;i++) scanf("%d",&a[i]); b[0]=c[n-1]=1; //依递推式计算b[] for(i=1;i<n;i++) if(a[i-1]<a[i]) b[i]=b[i-1]+1; else b[i]=1; //依递推式计算c[] for(i=n-2;i>=0;i--) if(a[i]<a[i+1]) c[i]=c[i+1]+1; else c[i]=1; //mx存储当前最优答案,初始化为1 mx=1; if(n>1&&a[1]>1) mx=c[1]+1; //绿豆饼的个数大于一,长度也大于一; if(n>1&&a[n-2]<10000&&b[n-2]+1>mx) mx=b[n-2]+1; //绿豆饼的个数大于一,且倒数第二个长度小于10000; //枚举改变的绿豆饼卷 for(i=1;i<n-1;i++) //去掉第一个和最后一个长度; { if(a[i-1]<10000) //如果第i个卷可以比之前的更长(没有达到最长); { tmp=b[i-1]+1; //通过增长i号卷可以使i之前的递增序列+1 if(a[i-1]+1<a[i+1]) tmp+=c[i+1]; //判断是否可以和以后的卷连在一起 if(tmp>mx) mx=tmp; //更新答案 } if(a[i+1]>1) //如果第i个卷可以比之后的更短 { tmp=c[i+1]+1; //通过缩短i号卷可以使i之后的递增序列+1 if(a[i+1]-1>a[i-1]) tmp+=b[i-1]; //判断是否可以和之前的卷连在一起 if(tmp>mx) mx=tmp; //更新答案 } } printf("%d\n",mx); } return 0;}
0 0
- WXYZ与绿豆饼
- WXYZ与绿豆饼
- WXYZ与绿豆饼——未
- WXYZ绿豆饼
- wxyz
- wxyz-wing
- 红与绿
- ACM第二次WXYZ
- 启明星辰与绿盟科技的培训文档
- 绿 光
- 绿花园
- 绿屋
- 绿光
- 苏打绿与尚雯婕北京合唱 歌迷包车追逐
- Kinect for Windows SDK v2.0 开发笔记 (四)玩家索引与绿屏技术
- h5案例分享:绿源电动车-与美国队长之间的约定
- 解决绿C(C与C++程序设计学习与实验系统 2015)软件程序中文出现乱码问题
- 柳条已经绿了
- iOS将输入框的文字存入本地文件中
- 过滤文件名中的非法字符
- poj-1140
- 三星i9220刷机包 新蜂 V4.4
- 找不到资源“$(string.NoReportSiteProblems)”(在 属性 displayName 中引用)。
- WXYZ与绿豆饼
- 防止反编译简单做法
- SAE Django配置static文件
- 面试时,如何向公司提问?
- 算法面试题目1
- 网络技术的应用领域很广,主要有以下几方面
- Java 7 的新特性一览表
- Flex4.6 VideoDisplay播放flv视频时画面不清晰,显示字母时有缺损的问题的解决办法。
- Django form表单使用