cf487a fight the monster

题意给你一个英雄,给你一个怪物。各有生命,攻击,防御。商店卖攻击,防御,还有生命。英雄需要杀掉怪物,最后,怪物的生命<=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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值