虽然结束这么久才发…我也很好奇我这算法对不对emm
先说结果:10800…(好像目前没看到一个一样的emm…如果在我方法中找到bug可以评论区告诉我Orz
算法思路:考虑 d p [ i ] [ u ] [ x 1 ] [ x 2 ] dp[i][u][x1][x2] dp[i][u][x1][x2]为第i天,在u节点,剩x1单位的水,x2单位的食物,所剩的最多的钱
转移部分详见代码:
#pragma GCC optimize(2)
#include<bits/stdc++.h>
#define ll long long
#define maxn 1000005
#define inf 1e9
#define pb push_back
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
inline int read()
{
int x=0,w=1; char c=getchar();
while(c<'0'||c>'9') {
if(c=='-') w=-1; c=getchar();}
while(c<='9'&&c>='0') {
x=(x<<1)+(x<<3)+c-'0'; c=getchar();}
return w==1?x:-x;
}
int a[maxn]={
0,2,2,1,3,1,2,

博客分享了作者针对2020数模国赛B题第一问的动态规划算法思路。通过dp[i][u][x1][x2]表示第i天在节点u,剩余水x1和食物x2的最多金钱。代码复杂度较高,可能运行约3分钟得出10800的答案。博主邀请读者检查代码并提供反馈。第二关问题可以类似解决,但未给出详细实现。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



