#include #include #include using namespace std; typedef long long ll; const int maxn=100010,maxm=1010,INF=0x7fffffff; int a[maxn],b[maxn];//生命值、防御力 int k[maxm],p[maxm];//消耗的晶石、造成的伤害 ll dp[1010][11];//dp[j][i]表示在防御力i下造成伤害为j所需要消耗的最小晶石,INF表示无法达到该伤害 int n,m; int main(){ while(~scanf("%d%d",&n,&m)) { ll ans=0; for(int i=0;i=j){ dp[j][i]=min((ll)k[kk],dp[j][i]); }else if(df>0){ dp[j][i]=min(dp[j][i],dp[j-df][i]+k[kk]); } } } } for(int i=0;i