您的位置:首页 > 其它

洛谷 p1567 统计天数(求最大上升子序列)

2017-12-28 21:52 232 查看
洛谷 p1567 统计天数

题目背景

统计天数

题目描述

炎热的夏日,KC非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。

经历千辛万苦,他收集了连续N(1<=N<=10^7)天的最高气温数据。

现在,他想知道最高气温一直上升的最长连续天数。

输入输出格式

输入格式:

*1行:一个整数N。1<=N<=10^7

*2行:N个空格隔开的整数,表示连续N天的最高气温。0<=最高气温<=10^9。

输出格式:

*1行:一个整数,表示最高气温一直上升的最长连续天数。

输入输出样例

输入样例#1:

10

1 2 3 2 4 5 6 8 5 9

输出样例#1:

5

说明

时间限制1s 内存限制128MB

分析:因为数值范围是10^7,所以int开数组就可以,但是如果10^9 的时候就需要用long long 了。

如下面代码,求最长上升子序列,需要用sum来计算每一次序列长度,然后s来存储最大值。

代码:

# include <iostream>
using namespace std;
int a[10000001];
int main(){
int n, i, sum = 1, s = 0;
cin>>n;
for(i = 1; i <= n; ++i){
cin>>a[i];
}
a[n + 1] = -1;
for(i = 1; i <= n; ++i){
if(a[i + 1] > a[i]){
sum ++;
} else {
if(sum > s){
s = sum;
sum = 1;
} else{
sum = 1;
}
}
}
cout<<s<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  信息学竞赛