首页 > 代码库 > XDOJ_1002_dp
XDOJ_1002_dp
http://acm.xidian.edu.cn/problem.php?id=1002
dp[i][j][k] 代表i长,j个绿,k个蓝造成的最大伤害。
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#define LL long longusing namespace std;LL n,x,y,z,t;LL dp[105][105][105];int main(){ while(~scanf("%d",&n)) { scanf("%lld%lld%lld%lld",&x,&y,&z,&t); memset(dp,0,sizeof(dp)); dp[1][0][0] = x*t; for(int i = 2;i <= n;i++) { for(int g = 0;g <= i;g++) { int b = 0; for(b = 0;b+g < i;b++) { int r = i-g-b; dp[i][g][b] = dp[i-1][g][b]+(g*y+x)*(b*z+t); } if(g > 0) dp[i][g][b] = max(dp[i][g][b],dp[i-1][g-1][b]+y*(g-1)*(b*z+t)); if(b > 0) dp[i][g][b] = max(dp[i][g][b],dp[i-1][g][b-1]+g*y*((b-1)*z+t)); } } LL ans = 0; printf("%lld\n",dp[2][1][1]); for(int i = 0;i <= n;i++) { for(int j = 0;j+i <= n;j++) ans = max(ans,dp[n][i][j]); } printf("%lld\n",ans); } return 0;}
XDOJ_1002_dp
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。