信息学奥赛一本通 1283:登山(evd)
发布日期:2022-01-30 02:41:34 浏览次数:14 分类:技术文章

本文共 809 字,大约阅读时间需要 2 分钟。

【题目描述】

五一到了,ACM队组织大家去登山观光,队员们发现山上一共有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号。同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么?

【输入】

第一行:N (2 ≤ N ≤ 1000) 景点数;

第二行:N个整数,每个景点的海拔。

【输出】

最多能浏览的景点数。

【输入样例】

8
186 186 150 200 160 130 197 220
【输出样例】
4
【心得】合唱队列,换汤不换药!先上升再下降!
【AC代码】

#include
#include
#include
#include
using namespace std;const int N=1005;int n,a[N],b[N],c[N],ma=-1;int main(){
cin>>n; for(int i=1;i<=n;i++) {
cin>>a[i]; b[i]=1; c[i]=1; } for(int i=2;i<=n;i++) {
for(int j=1;j
a[j]&&b[i]<=b[j]) b[i]=b[j]+1; } } for(int i=n-1;i>=1;i--) {
for(int j=i+1;j<=n;j++) {
if(a[i]>a[j]&&c[i]<=c[j]) c[i]=c[j]+1; } } for(int i=1;i<=n;i++) ma=max(ma,b[i]+c[i]-1); cout<

转载地址:https://blog.csdn.net/everwide1982/article/details/109742391 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:信息学奥赛一本通 1281:最长上升子序列(evd)
下一篇:信息学奥赛一本通 1284:摘花生(evd)

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月22日 02时04分08秒