索道(way)

庐阳区2022年信息学竞赛试题

题目描述 Description

山脚下有一个较为平坦的山路,共有N棵美人松,光头强打算利用这些美人松修建一条索道。这条索道中间高两头低,可以放弃一些美人松,但是光头强必须选择第K棵美人松作为索道的最高点。求建造这样的索道最多可以利用多少棵美人松。

输入描述 Input Description

第一行两个正整数N和K。

第二行,N 个整数,表示从左到右各美人松的高度。

输出描述 Output Description

一个整数,表示建造这样的索道利用美人松最大数。

样例输入 Sample Input

10 61 3 2 4 2 5 6 3 4 1

样例输出 Sample Output

6

数据范围及提示 Data Size & Hint

数据范围

N<=3000

提示说明

样例中,第6个数是5必选,作为最高点,可以选择1 3 4 5 3 1,极端情况下,结果可能为1。

上代码:

#include
using namespace std;
int n, k;
int a[3005];
int f[3005], g[3005];
int main() {cin >> n >> k;for (int i = 1; i <= n; i++) {cin >> a[i];}for (int i = 1; i <= k; i++) {f[i] = 1;for (int j = 1; j < i; j++) {if (a[j] < a[i]) {f[i] = max(f[i], f[j] + 1);}}}for (int i = n; i >= k; i--) {g[i] = 1;for (int j = n; j > i; j--) {if (a[j]


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部