虽然结束这么久才发…我也很好奇我这算法对不对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,