标签:blog io os for sp 2014 log amp size
基础DP题
打BOSS BOSS和自己都有100点血,玩家先手
每回合可以选择施放技能攻击(耗蓝,共n种)或者普通攻击(不耗蓝,伤害为1),BOSS每回合会攻击自己q点血,每回合自己会恢复t点法力
方程: dp[i][j-a[k]+t]=Max(dp[i][j-a[k]+t],dp[i-1][j]+b[k]);
#include "stdio.h" #include "string.h" int inf=0x3f3f3f3f; int Max(int a,int b) { if (a<b) return b;else return a; } int main() { int i,n,m,t,q,j,k,ans; int dp[101][101],a[101],b[101]; while (scanf("%d%d%d",&n,&t,&q)!=EOF) { if (n+t+q==0) break; for (i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]); a[0]=0; b[0]=1; m=100/q; if (100%q!=0) m++; memset(dp,-1,sizeof(dp)); ans=-1; dp[0][100]=0; for (i=1;i<=m;i++) { for (j=0;j<=100;j++) if (dp[i-1][j]!=-1) { for (k=0;k<=n;k++) if (a[k]<=j) { dp[i][j-a[k]+t]=Max(dp[i][j-a[k]+t],dp[i-1][j]+b[k]); if (dp[i][j-a[k]+t]>=100) {ans=i; break;} } if (ans!=-1) break; } if (ans!=-1) break; } if (ans==-1) printf("My god\n"); else printf("%d\n",ans); } return 0; }
标签:blog io os for sp 2014 log amp size
原文地址:http://blog.csdn.net/u011932355/article/details/39928585