如何用万网建设网站,怎么做网页赚取点击率从而赚钱,中国室内设计师,百度网页电脑版入口本题我们可以类比背包
背包dp[i][j] 表示再有i个物品下j个空间所获得的最大价值
本题dp[i][j] 可以表示干掉i个血量j个防御力下的最小花费 我们看其实我们就是在不同血量之间转移
如果当前技能的攻击力 当前防御力
如果攻击力能干掉怪物那么dp[i][j] min(花费,dp[…本题我们可以类比背包
背包dp[i][j] 表示再有i个物品下j个空间所获得的最大价值
本题dp[i][j] 可以表示干掉i个血量j个防御力下的最小花费 我们看其实我们就是在不同血量之间转移
如果当前技能的攻击力 当前防御力
如果攻击力能干掉怪物那么dp[i][j] min(花费,dp[i][j]);
如果干不掉 dp[i][j] min(dp[i-伤害] [ j]花费 , dp[i][j]);也就是在干掉i-伤害值下的花费 再加使用这次技能的花费 #includebits/stdc.h
using namespace std;
typedef long long ll;
const int maxn 100010;
const int inf 0x3f3f3f3f;
ll n,m,k[1010],p[1010],a[maxn],b[maxn];
ll dp[1010][15];int main()
{while(~scanf(%d%d,n,m)){ll ml0,mf0;for(int i1;in;i){cina[i]b[i];ml max(ml,a[i]);mf max(mf,b[i]);}ll ma0;for(int i1;im;i){cink[i]p[i];ma max(p[i],ma);}memset(dp,0,sizeof(dp));if(mamf){puts(-1);continue;}for(int j1;jml;j){for(int i0;i10;i){dp[j][i] inf;for(int u1;um;u){ll h p[u]-i;//coutj-hendl;//system(pause);if(h0)continue;//伤害值小于防御值if(hj)//可以干掉dp[j][i] min(dp[j][i],k[u]);else dp[j][i] min(dp[j][i],dp[j-h][i]k[u]); }}}ll ans0;for(int i1;in;i){ansdp[a[i]][b[i]];}printf(%lld\n,ans);}return 0;
}