P1353 [USACO08JAN]Running S 动态规划
创始人
2025-06-01 00:04:55
0

最近在我们自己OJ上刷了三四道题

但发现各大平台都没有

直接傻眼一半

写题解的话根本没人看,所以去洛谷倒旧账


题目描述
奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行 n 分钟的晨跑。在每分钟的开始,贝茜会选择下一分钟是用来跑步还是休息。
贝茜的体力限制了她跑步的距离。更具体地,如果贝茜选择在第 i 分钟内跑步,她可以在这一分钟内跑 di 米,并且她的疲劳度会增加 11。不过,无论何时贝茜的疲劳度都不能超过 m。
如果贝茜选择休息,那么她的疲劳度就会每分钟减少 11,但她必须休息到疲劳度恢复到 0 为止。在疲劳度为 0 时休息的话,疲劳度不会再变动。晨跑开始时,贝茜的疲劳度为 0 。
还有,在 n 分钟的锻炼结束时,贝茜的疲劳度也必须恢复到 0,否则她将没有足够的精力来对付这一整天中剩下的事情。
请你计算一下,贝茜最多能跑多少米。
输入格式
第一行两个正整数 n,m。
接下来 n 行,每行一个正整数 di。
输出格式
输出一个整数,表示在满足所有限制条件的情况下,贝茜能跑的最大距离。
输入 #1
5 2
5
3
4
2
10
输出 #1
9
  1. 抽象:动态规划有三个特征,最优子结构,无后效性,子问题重叠性

但这三个在题目中很难发现,还是需要找一些规律,能够看出算法

如:在每一次都有多种方法考虑,或者最大......,等等

这一题中,两个都符合

动态规划三要素:

状态定义:f[i][j]表示第i分钟有j疲劳度

初始化:f[i][0]=max(max(f[i-1][0],f[i][0]),f[i-j][j]);

状态转移方程:f[i][j]=max(f[i][j],f[i-1][j-1]+d[i]);

# include 
# include 
using namespace std;
# define int long long
int n,m;
int d[10005];
int f[10005][505];//第i分钟j疲劳度 
signed main(){scanf("%lld%lld",&n,&m);for (int i=1;i<=n;i++){scanf("%lld",&d[i]);}for (int i=1;i<=n;i++){for (int j=1;j<=min(i,m);j++){f[i][0]=max(max(f[i-1][0],f[i][0]),f[i-j][j]);}for (int j=m;j>=1;j--){f[i][j]=max(f[i][j],f[i-1][j-1]+d[i]);}}printf("%lld",f[n][0]);return 0;
}

相关内容

热门资讯

嘉兴男子与妻争吵,突然将行李箱... 近日,浙江嘉兴一对夫妻因琐事发生争吵,丈夫突然将装满衣物的行李箱从6楼扔到楼下,引发关注。11月22...
三地107家律所齐聚丰台,京津... 11月22日,京津冀律师驿站举办“党建业务深度融合 促进行业规范发展”主题活动,发布“百千万行动计划...
家装预付资金安全困局如何破解,... 家装预付资金安全困局如何破解 专家提出:建立“先验收后付款”装修资金存管制度 预交数万元甚至数十万元...
工行安康解放路支行积极开展《反... 为深入贯彻落实《国家金融监督管理总局安康监管分局办公室关于开展<反有组织犯罪法>宣传活动的通知》要求...
重庆公布育儿补贴制度实施方案 原标题:每孩每年3600元 重庆公布育儿补贴制度实施方案 11月21日,记者了解到,市卫生健康委、市...
十五运会组委会在深总结本届赛事... 深圳新闻网2025年11月22日讯(深圳报业集团记者 林炜航)11月21日,十五运会组委会在深圳市民...
中国军视网:日本妄言击沉福建舰... 本文转自【中国军视网】; 日本首相高市早苗发表涉台错误言论,公然挑战一个中国原则,甚至还有日本无知政...
重磅!东莞长安50万㎡产城发布... 在当下竞争激烈的市场环境中,中小企业如何突破成本压力,找到一片既能扎根成长又能眺望未来的理想栖息地?...
毕马威:政策、资本等多维着力 ... 由毕马威联合长三角G60科创走廊创新研究中心主办的“长三角高端装备新质领袖榜单发布仪式”于11月21...