洛谷 P1567 统计天数【最长上升子序列/断则归一】
题目背景
统计天数
题目描述
炎热的夏日,KC非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。
经历千辛万苦,他收集了连续N(1<=N<=10^7)天的最高气温数据。
现在,他想知道最高气温一直上升的最长连续天数。
输入输出格式
输入格式:
*1行:一个整数N。1<=N<=10^7
*2行:N个空格隔开的整数,表示连续N天的最高气温。0<=最高气温<=10^9。
输出格式:
*1行:一个整数,表示最高气温一直上升的最长连续天数。
输入输出样例
说明
时间限制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; }