zoukankan      html  css  js  c++  java
  • C

    题意就不说了

    思路:要分析好对什么进行枚举,如果对血量也进行枚举的话,至少要枚举到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 }
  • 相关阅读:
    [算法分析]计数排序
    [置顶] 基于stm32f103zet6之UC/OS_II的学习1(初步移植OS点灯大法)
    IOS开发(59)之Block Object的调用
    【译】测试员,敢问路在何方?来自微软工程师
    各种字符串hash
    hdu 2579 BFS
    qq相册
    程序人生之我们的故事:十年如歌(9)
    关联模型和无限极分类
    十大技巧破解电话面试
  • 原文地址:https://www.cnblogs.com/usedrosee/p/4387274.html
Copyright © 2011-2022 走看看