P1035. 2022.10.13-跳跳棋(dp)
https://codefun2000.com/p/P1035
题目内容
在某个遥远的国度里,有一种传统的游戏叫做“跳跳棋”,这是一种基于积分的游戏。在这个国度里,跳跳棋已经有着悠久的历史,并且已经被许多人认为是一种智力和策略的游戏。人们在跳跳棋中可以锻炼自己的思维和判断能力。因此,这个游戏非常受欢迎,人们经常在闲暇时间里玩这个游戏。
传统的跳跳棋棋盘呈直线状,共有 格,起始位置和结束位置都在棋盘之外。每一格都对应一个不同的积分值,而每次跳跃都必须跳过一个或多个格子,而且不允许跳到相邻的格子上,也不可以回跳,游戏的目标是通过跳跃来获取最高的积分。
输入描述
第一行为整数 ,表示跳棋格数
第二行为每一格代表的分数
输出描述
能获得的最高积分
样例
输入
3
1 5 2
输出
5
这个题,dp[i]代表的就是前i个能取得最高积分,然后状态转移方程就是dp[i]=max(dp[i-1],dp[i-2]+a[i]);
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1e6+100;
int dp[maxn];
int a[maxn];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
dp[1]=a[1];
for(int i=2;i<=n;i++){
dp[i]=max(dp[i-1],dp[i-2]+a[i]);
}
cout<<dp[n]<<endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!