codeforces 488C Fight the Monster(枚举)
来源:互联网 发布:js获取鼠标坐标 编辑:程序博客网 时间:2024/05/20 16:34
题目链接
A monster is attacking the Cyberland!
Master Yang, a braver, is going to beat the monster. Yang and the monster each have 3 attributes: hitpoints (HP), offensive power (ATK) and defensive power (DEF).
During the battle, every second the monster's HP decrease by max(0, ATKY - DEFM), while Yang's HP decreases bymax(0, ATKM - DEFY), where index Y denotes Master Yang and index M denotes monster. Both decreases happen simultaneously Once monster's HP ≤ 0 and the same time Master Yang's HP > 0, Master Yang wins.
Master Yang can buy attributes from the magic shop of Cyberland: h bitcoins per HP, a bitcoins per ATK, and d bitcoins per DEF.
Now Master Yang wants to know the minimum number of bitcoins he can spend in order to win.
The first line contains three integers HPY, ATKY, DEFY, separated by a space, denoting the initial HP, ATK and DEF of Master Yang.
The second line contains three integers HPM, ATKM, DEFM, separated by a space, denoting the HP, ATK and DEF of the monster.
The third line contains three integers h, a, d, separated by a space, denoting the price of 1 HP, 1 ATK and 1 DEF.
All numbers in input are integer and lie between 1 and 100 inclusively.
The only output line should contain an integer, denoting the minimum bitcoins Master Yang should spend in order to win.
1 2 11 100 11 100 100
99
100 100 1001 1 11 1 1
0
For the first sample, prices for ATK and DEF are extremely high. Master Yang can buy 99 HP, then he can beat the monster with 1 HP left.
For the second sample, Master Yang is strong enough to beat the monster, so he doesn't need to buy anything.
题解:易知y的防御最大为100,y的攻击力最大为200,所以枚举y的防御和攻击力,计算出最少所需的血量,即可求出最小的花费。
代码如下:
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#include<string>#include<queue>#include<stack>#include<map>#include<set>#include<stdlib.h>#include<vector>#define inff 0x3fffffff#define nn 6100#define mod 1000000007typedef long long LL;const LL inf64=inff*(LL)inff;using namespace std;int hy,ay,dy;int hm,am,dm;int h,a,b;int main(){ int i,j; while(scanf("%d%d%d",&hy,&ay,&dy)!=EOF) { scanf("%d%d%d",&hm,&am,&dm); scanf("%d%d%d",&h,&a,&b); int ans=inff; int ix,fc; for(i=dy;i<am;i++) { for(j=ay;j<=300;j++) { if(j<=dm) continue; ix=(hm+j-dm-1)/(j-dm); fc=ix*(am-i); fc++; fc=max(fc-hy,0); ans=min(ans,fc*h+(j-ay)*a+(i-dy)*b); } } ix=max(ay,dm+1); fc=max(am-dy,0); ans=min(ans,(ix-ay)*a+fc*b); printf("%d\n",ans); } return 0;}
- codeforces 488C Fight the Monster(枚举)
- CodeForces 488 C.Fight the Monster(枚举)
- Codeforces 488C Fight the Monster【二分+枚举】
- Codeforces 488 C. Fight the Monster(模拟)
- codeforces #487A# Fight the Monster(枚举)
- Codeforces Round #278 (Div. 2) 488C.Fight the Monster
- Codeforces Round #278 (Div. 2) C. Fight the Monster 二分+枚举
- codeforces 487 A Fight the Monster 暴力枚举
- Codeforces Round #278 (Div. 2) C. Fight the Monster(暴力)
- codeforces 487A Fight the Monster
- 【Codeforces】 487A Fight the Monster
- CodeForces 487A Fight the Monster
- Codeforces 487A Fight the Monster(暴力)
- Codeforces 487A Fight the Monster
- CF488C Fight the Monster
- Codeforces Round #278 (Div. 1) A. Fight the Monster( 暴力)
- CF_487A Fight the Monster(二分)
- Fight the Monster题解报告
- 日语学习之沪江N4基础 20141129 -3
- Linux上的free命令详解
- Python逃生游戏
- POJ1081--You Who?
- (ios7) 解决代码布局View, ios7 中 subView 高度增加StatusBar20dp的问题,保证Ios6,ios7代码一致
- codeforces 488C Fight the Monster(枚举)
- ICMP Internet控制报文协议(四)
- storyboard window
- 1.5 数学之美简介
- Android SDK开发包国内下载地址
- cocos2dx在mac下的环境搭建
- [C++]LeetCode: 35 Balanced Binary Tree
- 一、MyBatis简介与配置MyBatis+Spring+MySql
- Xcode快捷键