1 条题解

  • 0
    @ 2025-8-24 23:04:43

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Little_x_starTYJ
    愿时光能缓,愿故人不散! || 众所周知,如果把灯泡放在嘴里,即使你自己一个人也取得出来灯泡。

    搬运于2025-08-24 23:04:43,当前版本为作者最后更新于2024-10-08 16:23:16,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题意简述

    在某款游戏中,有着 nn 个物件,每个物件都有四种判定方式。

    • 大 Pure 判定,该玩家获得 107n+1\frac{10^7}{n} + 1 分。
    • 小 Pure 判定,该玩家获得 107n\frac{10^7}{n} 分。
    • Far 判定,该玩家获得 107n2\frac{\frac{10^7}{n}}{2} 分。
    • Lost 判定,该玩家不得分。

    玩家获得的分数也有着一种评级方式。

    ss 为该玩家获得的分数。

    • s<8.6×106s < 8.6\times 10^6 时,该玩家获得 D 评级。
    • 8.6×106s<8.9×1068.6\times 10^6 \leq s < 8.9\times 10^6 时,该玩家获得 C 评级;
    • 8.9×106s<9.2×1068.9\times 10^6 \leq s < 9.2\times 10^6 时,该玩家获得 B 评级;
    • 9.2×106s<9.5×1069.2\times 10^6 \leq s < 9.5\times 10^6 时,该玩家获得 A 评级;
    • 9.5×106s<9.8×1069.5\times 10^6 \leq s < 9.8\times 10^6 时,该玩家获得 AA 评级;
    • 9.8×106s<9.9×1069.8\times 10^6 \leq s < 9.9\times 10^6 时,该玩家获得 EX 评级;
    • s9.9×106s \geq 9.9\times 10^6 时,该玩家获得 EX+ 评级;

    现告诉你该玩家获得 大 Pure、小 Pure、Far、Lost 评定的物件的个数,请你求出玩家所得分数的评级。

    解题思路

    n=p1+p0+f+l,x=107nn = p_1 + p_0 + f + l,x = \frac{10^7}{n}

    • 对于 大 Pure 判定,我们把总分加上 (x+1)×p1(x + 1) \times p_1
    • 对于 小 Pure 判定,我们把总分加上 x×p0x \times p_0
    • 对于 Far 判定,我们把总分加上 x2×f\frac{x}{2} \times f
    • 对于 Lost 判定,我们什么也不用管。

    算出来总分后,我们挨个判定当前分数属于哪个评级即可。

    CODE:

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
    	int p1, p0, f, l;
    	cin >> p1 >> p0 >> f >> l;
    	int n = p1 + p0 + f + l;
    	int scores = (1e7 / n + 1) * p1;
    	scores += (1e7 / n) * p0;
    	scores += (1e7 / n / 2) * f;
    	scores += 0;   //Lost 不用加分。
    	if (scores < 8.6 * 1e6) {
    		cout << "D";
    	} else if (scores < 8.9 * 1e6) { //这里已经满足 scores >= 8.6 * 1e6
    		cout << "C";
    	} else if (scores < 9.2 * 1e6) {
    		cout << "B";
    	} else if (scores < 9.5 * 1e6) {
    		cout << "A";
    	} else if (scores < 9.8 * 1e6) {
    		cout << "AA";
    	} else if (scores < 9.9 * 1e6) {
    		cout << "EX";
    	} else {
    		cout << "EX+";
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    10741
    时间
    2000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者