洛谷 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

【代码】:

#include<bits/stdc++.h>
using namespace std;
int a[10000000+10];
int ans=1,s=1;//它不管怎么样都会有本身一天,所以赋初值为一
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(ans>s) s=ans;//打擂台//如果连续天数比现在最高连续天数高,就修改最高天数
        if(a[i]>a[i-1])
        {
            ans++;//如果今天比昨天气温高,连续天数++
        }
        else
        {
            ans=1;//没有高,连续天数就断了,回到初值1
        }
    }
    cout<<s<<endl;//输出最高连续天数
    return 0;
}
View Code

 

posted @ 2017-12-04 00:09  Roni_i  阅读(477)  评论(0编辑  收藏  举报