站外题求助(悬关
  • 板块灌水区
  • 楼主sunhaozhe111022
  • 当前回复13
  • 已保存回复13
  • 发布时间2024/9/16 22:53
  • 上次更新2024/9/17 10:45:44
查看原帖
站外题求助(悬关
995215
sunhaozhe111022楼主2024/9/16 22:53

第1题 跳房子

跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下:

在地面上确定一个起点,然后在起点右侧画n 个格子,这些格子都在同一条直线上。每 个格子内有一个数字(整数),表示到达这个格子能得到的分数。玩家第一次从起点开始向 右跳,跳到起点右侧的一个格子内。第二次再从当前位置继续向右跳,依此类推。规定: 玩家每次都必须跳到当前位置右侧的某个格子内。玩家到达某格子时,获得的分数为曾经到达过的格子中的数字之和。

现在小R 研发了一款弹跳机器人来参加这个游戏。但是这个机器人有一个非常严重的缺陷,它每次向右弹跳的距离最多为d。他的机器人每次可以选择向右弹跳的距离为1,2,3,…,d。

现在小R 希望跳到最后格获得最高分数。

输入格式 第1行:2个正整数N和d,范围[2,1000]。

第2行N个整数,每个整数范围[-100,100]。

本蒟蒻的代码

#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1005],f[1005];
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	f[1]=a[1];
	for(int i=2;i<=n;i++)
	{
        int p=-1000;
		for(int j=max(1,i-m);j<i;j++)
		{
			p=max(f[j],p);
		}
        f[i]=a[i]+p;
	}
	cout<<f[n];
	return 0;
}
2024/9/16 22:53
加载中...