codeforces 903B. The Modcrab(模拟)

题意:一个人在打怪,他每回合可以选择喝药加血或者打怪,然后怪物会攻击他一次,让你输出一个他可以打死怪物的方案(任意一个即可,特殊判定),但是注意他的血量可以无上限。第一行输入他的当前血量h1,攻击力a1,药每次回复c的血量,第二行输入怪物的血量h2,怪物的攻击力a2。

思路:因为血量无上限,所以我们可以先把血加到一个刚好能打死怪物的血量,然后再开始打怪。

加血的时候怪也会攻击你。我因为这个WA了一发。。。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int h1,a1,c,h2,a2;
	while(~scanf("%d%d%d%d%d",&h1,&a1,&c,&h2,&a2))
	{
		int num = h2 / a1;if(h2 % a1 != 0) num++;//攻击次数 
		int sum = a2 * (num - 1); //需要承受的伤害
		int H = 0;
		while(H * c + h1 <= sum)
		{
			sum += a2;
			H++;//喝药次数 
		} 
		printf("%d\n",H + num);
		while(H--) printf("HEAL\n");
		while(num--) printf("STRIKE\n");
	}
	return 0;
}
/*
10 6 100
17 5
11 6 100
12 5
*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值