C - Fight the Monster(暴力)

题意就不说了

思路:要分析好对什么进行枚举,如果对血量也进行枚举的话,至少要枚举到10^4,加上对攻击力和防御力进行枚举10^2 * 10^2,可能会TLE。

因为monster的血量是固定的,所以可以通过对攻击力和防御力枚举,求出最少需要的攻击次数,和这个攻击次数下保证的血量,每次比较取max即可。。。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<cstring>
 5 #include<string>
 6 #include<queue>
 7 #include<algorithm>
 8 #include<map>
 9 #include<iomanip>
10 #include<climits>
11 #include<string.h>
12 #include<numeric>
13 #include<cmath>
14 #include<stdlib.h>
15 #include<vector>
16 #include<stack>
17 #include<set>
18 #define FOR(x, b, e)  for(int x=b;x<=(e);x++)
19 #define REP(x, n)     for(int x=0;x<(n);x++)
20 #define INF 1e7
21 #define MAXN 100010
22 #define maxn 1000010
23 #define Mod 1000007
24 #define N 1010
25 using namespace std;
26 typedef long long LL;
27
28
29 int main()
30 {
31     int mh, ma, md;
32     int yh, ya, yd;
33     int h, y, d;
34     cin >> yh >> ya >> yd;
35     cin >> mh >> ma >> md;
36     cin >> h >> y >> d;
37     int ans = 1 << 29, r, k;
38     for (int i = ya;i <= 200;++ i) //枚举yang的攻击力
39         for (int j = yd;j <= 100;++ j)//枚举yang的防御力
40             {
41                 if (i <= md) continue;
42                 r = ceil((double)mh/(i - md));//yang最少的攻击次数
43                 k = max((ma - j)*r + 1, yh);//yang需要的最少血量
44                 ans = min(ans, (k-yh)*h + (i-ya)*y + (j-yd)*d);
45             }
46     cout << ans << endl;
47     return 0;
48 }
时间: 2024-11-03 15:44:05

C - Fight the Monster(暴力)的相关文章

HDU 2616 Kill the monster (暴力搜索 || 终极暴力全排列)

题目链接:HDU 2616 Kill the monster 题意:有N个技能去打HP有M的怪兽,技能(A,M),技能伤害为A,当怪兽HP<=M时伤害为2*A.求打死怪兽(HP<=0)用的最少技能 方法一:将技能全排列,计算伤害,得到答案. 方法二:搜索,具体看代码. 全排列AC代码: #include<stdio.h> #include<algorithm> using namespace std; struct node { int p,v; }; struct n

CodeForces 487A Fight the Monster

1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int judge(int hy,int ay,int dy,int hm,int am,int dm)//计算特定的攻击与防御之下,需要加多少hp 5 { 6 if(am <= dy) 7 return 0; 8 int d1 = am - dy; 9 //cout<<" d1 = "<<d1<&

(一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)

(一).写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight).再写两个子类:红猪的类:类中有属性姓名(name),攻击力(attack),颜色(color).红猪也有一个打人的方法(fight),要求在此方法中输出"XX猪是XX颜色的,打掉了人XX点血".蛇类:类中有属性姓名(name),有攻击力属性(attack),有几条脚属性(foot).蛇也有一个打人的方法(fight),要求在此方法中输出"XX蛇用XX条脚跑到人面前去打人,打

【codeforces #278(div 1)】ABCD题解

A. Fight the Monster time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output A monster is attacking the Cyberland! Master Yang, a braver, is going to beat the monster. Yang and the monster each hav

Running Hero.

Running Hero开发流程 一.需求分析 Running Hero是在接到大作业以前就已经有的想法,一直没有好的契机好好策划实现,正巧通过此次作业的机会,将它实现出来了. Running Hero 的初步定义是一款结合了传统的横版闯关以及当下最流行的酷跑模式的新型横版手游,大体上分成两个模块,单机闯关以及网络联机对战,由于技术不太成熟以及时间原因,暂时只开发了单机闯关板块. Running Hero 整体风格设计为卡通类型的,素材(能力有限,非原创)出自66rpg素材网,游戏流程设计为:

uva 1318 - Monster Trap(bfs+暴力)

题目链接:uva 1318 - Monster Trap 每条线段2个点,加上起点终点一个是202个点,暴力判断连点之间是否可达,可达建边.因为线段有厚度考虑,所以将线段延伸一点再处理,这样原本共用一端点的线段变成相交.特殊情况是三点共线,这是判断延伸后的点是否落在其他线段上,如果是就不考虑这个点.最后做一遍bfs. #include <cstdio> #include <cstring> #include <cmath> #include <vector>

hdu 4585 Shaolin两种方法(暴力和STL map set)

转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 Problem Description Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shaolin temple every year, trying to be a monk there. The mast

hdu 5556 Land of Farms 最大团+暴力

Land of Farms Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 539    Accepted Submission(s): 177 Problem Description Farmer John and his brothers have found a new land. They are so excited and d

hdu 4585 Shaolin两种方法(暴力和STL)

转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 Problem Description Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shaolin temple every year, trying to be a monk there. The mast