JZOJ__Day 10:【普及模拟】【USACO】山峰暸望
生活随笔
收集整理的這篇文章主要介紹了
JZOJ__Day 10:【普及模拟】【USACO】山峰暸望
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
一天,Bessie在眺望美麗的威斯康星的群山的時候,她突然產生了疑問:哪座山是最寬的捏?她決定在地平線上,利用她的新發明的山峰高度測量儀依次做N (1 <= N <= 10,000)次高度測量H_i (1 <= H_i <= 1,000,000,000)。一座山定義為一段連續的高度序列,序列中的高度一開始單調上升(或者不變),然后單調下降(或者不變)。舉例來說,2, 3, 3, 5, 4, 4, 1這一段高度序列就是一座山。如果在她的視線范圍內有一段只單調上升或者只單調下降的序列,也算是一座山。山的寬度定義為在這個山上進行的測量的次數(也就是序列的長度)。請幫Bessie找到最寬的山。輸入
第1行: 一個單獨的整數: N
第2到第N+1行: 第i+1包含一個單獨的整數: H_i
輸出
一個單獨的整數,表示最寬的山的寬度。
樣例輸入
7
3
2
3
5
4
1
6
樣例輸出
5
分析
設d[i]表示第i個點以前的最長上升序列的長度
設e[i]表示第i個點以后的最長下降序列的長度
答案輸出max(d[i]+e[i]-1)
程序:
var n,max:int64; i:longint; a,e,d:array[0..10001]of int64; beginreadln(n);for i:=1 to n doreadln(a[i]);d[0]:=0;for i:=1 to n doif a[i]>=a[i-1] then d[i]:=d[i-1]+1 else d[i]:=1;for i:=n downto 1 doif a[i]>=a[i+1] then e[i]:=e[i+1]+1 else e[i]:=1;max:=0;for i:=1 to n doif d[i]+e[i]-1>max then max:=d[i]+e[i]-1;write(max); end.轉載于:https://www.cnblogs.com/YYC-0304/p/9500080.html
總結
以上是生活随笔為你收集整理的JZOJ__Day 10:【普及模拟】【USACO】山峰暸望的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JZOJ__Day 10:【普及模拟】【
- 下一篇: JZOJ__Day 10:【普及模拟】【