洛谷-P2006 赵神牛的游戏

洛谷-P2006 赵神牛的游戏

原题链接:https://www.luogu.com.cn/problem/P2006


题目描述

在 DNF 中,赵神牛有一个缔造者,他一共有 (k) 点法力值,一共有 (m) 个技能,每个技能耗费的法力值为 (a_i),可以造成的伤害为 (b_i),而 boss 的体力值为 (n),请你求出它放哪个技能,才可以打死 boss。

当然,赵神牛技术很菜,他一局只放一个技能,不过每个技能都可以放无数次。

输入格式

第一行有三个整数,分别表示 (k,m,n)

后面 (m) 行,每行两个整数,第 ((i + 1)) 行的整数表示耗费的法力值 (a_i) 和造成的伤害 (b_i)

输出格式

输出仅一行,既可以杀死 boss 的技能序号,如果有多个,按从小到大的顺序输出,中间用一个空格隔开;如果没有技能能杀死 boss,输出 -1

输入输出样例

输入 #1

100 3 5000
20 1000
90 1
110 10000

输出 #1

1

输入 #2

50 4 10
60 100
70 1000
80 1000
90 0

输出 #2

-1

说明/提示

数据规模与约定

对于全部的测试点,满足:

  • (0le n,m,kle 3 imes 10^4),
  • (1 leq a_i,b_ile 2147483647)

C++代码

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int k, m, n, j=0;
    cin >> k >> m >> n;
    int a[m], b[m], ans[m];
    for (int i=0; i<m; ++i)
        cin >> a[i] >> b[i];
    for (int i=0; i<m; ++i)
        if (ceil(n*1.0/b[i])*a[i] <= k)
            ans[j++] = i + 1;
    if (j == 0)
        cout << -1;
    for (int i=0; i<j; ++i)
        cout << ans[i] << ' ';
    cout << endl;
    return 0;
}
原文地址:https://www.cnblogs.com/yuzec/p/14258106.html