首页 > 其他分享 >P11154 【MX-X6-T0】Arcaea Scoring System

P11154 【MX-X6-T0】Arcaea Scoring System

时间:2024-10-09 15:22:46浏览次数:16  
标签:Scoring 10 Arcaea 8.6 System times 判定 玩家 cout

题目传送门

题意简述

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

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

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

设 s s s 为该玩家获得的分数。

  • s < 8.6 × 1 0 6 s < 8.6\times 10^6 s<8.6×106 时,该玩家获得 D 评级。
  • 8.6 × 1 0 6 ≤ s < 8.9 × 1 0 6 8.6\times 10^6 \leq s < 8.9\times 10^6 8.6×106≤s<8.9×106 时,该玩家获得 C 评级;
  • 8.9 × 1 0 6 ≤ s < 9.2 × 1 0 6 8.9\times 10^6 \leq s < 9.2\times 10^6 8.9×106≤s<9.2×106 时,该玩家获得 B 评级;
  • 9.2 × 1 0 6 ≤ s < 9.5 × 1 0 6 9.2\times 10^6 \leq s < 9.5\times 10^6 9.2×106≤s<9.5×106 时,该玩家获得 A 评级;
  • 9.5 × 1 0 6 ≤ s < 9.8 × 1 0 6 9.5\times 10^6 \leq s < 9.8\times 10^6 9.5×106≤s<9.8×106 时,该玩家获得 AA 评级;
  • 9.8 × 1 0 6 ≤ s < 9.9 × 1 0 6 9.8\times 10^6 \leq s < 9.9\times 10^6 9.8×106≤s<9.9×106 时,该玩家获得 EX 评级;
  • s ≥ 9.9 × 1 0 6 s \geq 9.9\times 10^6 s≥9.9×106 时,该玩家获得 EX+ 评级;

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

解题思路

设 n = p 1 + p 0 + f + l , x = 1 0 7 n n = p_1 + p_0 + f + l,x = \frac{10^7}{n} n=p1​+p0​+f+l,x=n107​。

  • 对于 大 Pure 判定,我们把总分加上 ( x + 1 ) × p 1 (x + 1) \times p_1 (x+1)×p1​。
  • 对于 小 Pure 判定,我们把总分加上 x × p 0 x \times p_0 x×p0​。
  • 对于 Far 判定,我们把总分加上 x 2 × f \frac{x}{2} \times f 2x​×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;
}

标签:Scoring,10,Arcaea,8.6,System,times,判定,玩家,cout
From: https://blog.csdn.net/2301_76224755/article/details/142786386

相关文章

  • systemverilog笔记
    变量类型变量名状态数是否带符号比特数logic4无1bit2无1byte2有8shortint2有16int2有32longint2有64integer4有32time4无64$isunknown(表达式):在表达式任意位出现X或者Z时返回1。数组数组初始化使用单引号加大括......