题意给你一个英雄,给你一个怪物。各有生命,攻击,防御。商店卖攻击,防御,还有生命。英雄需要杀掉怪物,最后,怪物的生命<=0,英雄的生命>0这样才胜利,问最少需要花费多少钱
数据范围 所有的数都是1~100
思路这个由于是1~100 我一开始没有想枚举,想推出一个公式,但是没有推出来,后来讲了之后,枚举,买攻击,防御,最后血量自己算最后需要多少,然后就得出了
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int hy , dy , ay , hm , dm , am, h , d , a , sum = 1000000000 , mood , tmp , hh;
scanf("%d %d %d",&hy , &dy , &ay);
scanf("%d %d %d",&hm , &dm , &am);
scanf("%d %d %d",&h , &d , &a);
for(int i = 0 ; i <= 300 ; i++){//攻击
for(int j = 0 ; j <= 300 ; j++){//防守
if(dy + i > am){
int x = ceil((double)hm/(dy + i - am));
int mood = x * (dm - ay - j);
if(mood + 1 > hy) hh = mood + 1 - hy;
else hh = 0;
if(sum > i * d + hh * h + j * a){
sum = min(sum , i * d + hh * h + j * a);
//printf("i = %d j = %d x = %d , hh = %d , sum = %d\n" , i , j , x , hh , sum);
}
}
}
}
printf("%d\n",sum);
return 0;
}