1996:登山

1996:登山

总时间限制: 
5000ms

内存限制: 
131072kB
描述

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

输入
Line 1: N (2 <= N <= 1000) 景点数
Line 2: N个整数,每个景点的海拔
输出
最多能浏览的景点数
样例输入
8
186 186 150 200 160 130 197 220
样例输出
4
来源
第六届北京大学程序设计大赛暨ACM/ICPC选拔赛
开始的时候认为是一个单纯的求最长不下降序列,结果WA了,回过头重新看了一下题,发现不仅仅要求上山的点,还要求下山的点。知道这一点就很容易求出来了。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5 #define Max 1200
 6 int dis[Max],a[Max],dsi[Max];
 7 int main()
 8 {
 9     int n;
10     scanf("%d",&n);
11     for(int i=1;i<=n;i++)
12     {
13         scanf("%d",&a[i]);
14         dis[i]=dsi[i]=1;
15     }
16     for(int i=1;i<=n;i++)
17     {
18         int maxx=0;
19         for(int j=1;j<i;j++)
20             if(a[j]<a[i]&&dsi[j]>maxx)
21                 maxx=dsi[j];
22             dsi[i]=maxx+1;
23     }
24     for(int i=n-1;i>=1;i--)
25     {
26         int maxx=0;
27         for(int j=i+1;j<=n;j++)
28             if(a[j]<a[i]&&dis[j]>maxx)
29                 maxx=dis[j];
30         dis[i]=maxx+1;
31     }
32     int maxx=0;
33     for(int i=1;i<=n;i++)
34         maxx=max(maxx,dsi[i]+dis[i]-1);
35     printf("%d",maxx);
36     return 0;
37 }

时间: 2024-10-11 11:15:00

1996:登山的相关文章

【noiOJ】P1996

1996:登山 查看 提交 统计 提问 总时间限制:  5000ms 内存限制:  131072kB 描述 五一到了,PKU-ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号.同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了.队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么? 输入 Line 1: N (2 <= N

openjudge-NOI 2.6基本算法之动态规划 专题题解目录

1.1759 最长上升子序列 2.1768 最大子矩阵 3.1775 采药 4.1808 公共子序列 5.1944 吃糖果 6.1996 登山 7.2000 最长公共子上升序列 8.2718 移动路线 9.2728 摘花生

Draft-JSS模板

IEEEtran.cls 1 %% 2 %% IEEEtran.cls 2007/03/05 version V1.7a 3 %% 4 %% 5 %% This is the official IEEE LaTeX class for authors of the Institute of 6 %% Electrical and Electronics Engineers (IEEE) Transactions journals and 7 %% conferences. 8 %% 9 %% S

1996 矿场搭建

1996 矿场搭建 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题解 题目描述 Description 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口.请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数. 输入描述 Input Descr

1996: [Hnoi2010]chorus 合唱队

1996: [Hnoi2010]chorus 合唱队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 1057  Solved: 681[Submit][Status][Discuss] Description Input Output Sample Input 4 1701 1702 1703 1704 Sample Output 8 HINT Source 题解:萌萌哒DP题,其实和我一开始想的暴力方法很接近,基本上就是记忆化暴力,然后转变为循环形

[CCC 1996 01]Deficient, Perfect, and Abundant

CCC加拿大高中生信息学奥赛 其余来源 CODEVS[3312]——CCC 1996 01 Deficient, Perfect, and Abundant ——http://codevs.cn/problem/3312/ POJ[1928]——Perfection——http://poj.org/problem?id=1528 CODEVS描述——中文题目 题目描述 Description 读入一个正整数n,判断整数是完数,亏数还是盈数. •如果它的约数的和等于它本身,那它便是一个完数(Per

MPI Maelstrom(East Central North America 1996)(poj1502)

MPI Maelstrom 总时间限制:  1000ms 内存限制:  65536kB 描述 BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distributed shared memory machine with a hierarchical communication subsystem. Valentine McKee's research advisor

BZOJ 1996: [Hnoi2010]chorus 合唱队(dp)

简单的dp题..不能更水了.. --------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define rep(i,n) for(int i=0;i<n;++i) #define clr(x,c) memset(x,c,sizeof(x

[POJ 1236][IOI 1996]Network of Schools

Description A number of schools are connected to a computer network. Agreements have been developed among those schools: each school maintains a list of schools to which it distributes software (the "receiving schools"). Note that if B is in the