首页 > 其他分享 >第二十三天

第二十三天

时间:2023-05-15 18:57:05浏览次数:49  
标签:PERFECT GOOD 第二十三 测试数据 BAD 判定 MISS

问题描述:

链接:https://ac.nowcoder.com/acm/challenge/terminal?&headNav=acm
来源:牛客网

quailty是一名狂热的ACM音游选手,沉迷各种音乐游戏,比如Lunatic Rave 2,osu!之类的。

今天,quailty玩的是国内游戏厂商雷亚(并不是赞助商)出品的一款音乐游戏Cytus。

游戏中,玩家需要随着游戏界面中上下移动的扫描线来适时演奏对应音符。

当上下移动的黑色线(扫描线)与圆形的物体(音符)的圆心重合时点击音符。

普通音符(图中第一种)只需点击即可。

锁链音符(图中第二种)将带箭头的音符(滑块)按下后不要松开,并将滑块沿着斜线和圆点组成的路径拖动,直至拖动到最后一个圆点处方可松开。注意拖动过程中应保持滑块圆心始终与扫描线重合。

长按音符(图中第三种)按下后不要松开,原地不动,等扫描线到达其末端并显示判定结果后方可松开。

Cytus共有五种判定,从好到坏依次为:彩PERFECT、黑PERFECT、GOOD、BAD、MISS。

得分中包括了90%的“判定分”和10%的“连击分”,而连击分是累进计算的,断COMBO对其影响很大,往往只要有1个MISS就会损失几万的连击分。

彩PERFECT和黑PERFECT在计算得分时一视同仁,只要全部PERFECT即可获得满分,满分为1000000,被称为MILLION Master。

quailty真的很严格,如果打完一把没有拿到MILLION Master,他就认为自己是NA Noob。

现在给你quailty打出的判定序列,请你输出这次游戏的评价是MILLION Master还是NA Noob。


输入描述:

第一行是一个正整数T ( 1 ≤ T ≤ 5 ),表示测试数据的组数,
每组测试数据,第一行是一个正整数n ( 1 ≤ n ≤ 100000 ),表示该组测试数据包含的判定数。接下来的n行,每行包含"PERFECT"、"GOOD"、"BAD"、"MISS"之中的一个字符串,表示quailty打出的一个判定。

输出描述:

对于每组数据,输出一行,包含一个字符串,表示这次游戏的评价。
示例1

输入

复制
2
5
PERFECT
PERFECT
PERFECT
PERFECT
PERFECT
10
PERFECT
MISS
PERFECT
BAD
BAD
GOOD
BAD
GOOD
GOOD
MISS

输出

复制
MILLION Master
NA Noob
解题思路:

1.读入测试数据的组数T

2.对于每组测试数据,执行以下步骤:

3.读入判定数n

4.对于每个判定,进行判断,如果是PERFECT,则加入相应的计数器变量

5.执行终极判断:是否等于判定数。如果相等,则输出MILLION Master,否则输出NA Noob。

代码:

#include <iostream>

using namespace std;

int main() {
    int T; // 测试数据的组数
    string str; // 判定字符串
    int n; // 判定数
    int perfectCount; // PERFECT的计数器
    cin >> T; // 读入测试数据的组数
    while (T--) { // 对于每组测试数据
        perfectCount = 0; // 初始化计数器
        cin >> n; // 读入判定数
        for (int i = 0; i < n; i++) { // 对于每个判定
            cin >> str; // 读入字符串
            if (str == "PERFECT") { // 如果是彩PERFECT或黑PERFECT
                perfectCount++; // 计数器加1
            }
        }
        if (perfectCount == n) { // 终极判断
            cout << "MILLION Master" << endl;
        } else {
            cout << "NA Noob" << endl;
        }
    }
    return 0;
}

标签:PERFECT,GOOD,第二十三,测试数据,BAD,判定,MISS
From: https://www.cnblogs.com/czfznb/p/17402796.html

相关文章

  • 打卡第二十三天
    要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。一、1.运用if语句,将每种运算都写出来二、三、#include<stdio.h>intmain(){inta,b;charc;scanf("%d%c%d",&a,&c,&b);if(c=='+')printf("......
  • 每天打卡一小时 第二十三天
    6-6【CPP0028】以圆类Circle及立体图形类Solid为基础设计圆柱类Cylinder分数 10全屏浏览题目切换布局作者 C++多态编程单位 石家庄铁道大学以点类Point及平面图形类Plane为基类公有派生圆类Circle,再以圆类Circle及立体图形类Solid为基类公有派生......
  • 每日编程一小时(第二十三天)
    一.问题描述以点类Point及平面图形类Plane为基类公有派生圆类Circle,再以圆类Circle及立体图形类Solid为基类公有派生圆锥类Cone,main(void)函数完成对圆锥类Cone的测试。Point类结构说明:Point类的数据成员包括:①私有数据成员:X坐标x(double型),Y坐标y(double型)。Point类成员函......
  • 第二十三章:动态加载脚本和样式
    学习要点:1.元素位置2.动态脚本3.动态样式本章主要讲解上一章剩余的获取位置的DOM方法、动态加载脚本和样式。一.元素位置上一章已经通过几组属性可以获取元素所需的位置,那么这节课补充一个DOM的方法:getBoundingClientRect()。这个方法返回一个矩形对象,包含四个属性:left、top、ri......
  • 第二十三篇 最佳实践 - 可维护性
    bycaixin深圳可维护性在早期网站中,JavaScript主要用于实现一些小型动效或表单验证。今天的Web应用则动辄成千上万行JavaScript代码,用于完成各种各样复杂的处理。这些变化要求开发者把可维护能力放到重要位置上。正如更传统意义上的软件工程师一样,JavaScript工程师受雇......
  • 第二十三篇 vue - 深入组件 - 内置组件 - Transition
    动画组件Transition和TransitionGroupVue提供了两个可以帮助你制作基于状态变化的过渡和动画内置组件1、<Transition>会在一个元素或组件进入和离开DOM时应用动画2、<TransitionGroup>会在一个v-for列表中的元素或组件被插入,移动,或移除时应用动画除了这两个组件,我......
  • 代码随想录算法训练营第二十三天|LeetCode 669. 修剪二叉搜索树 、LeetCode 108.将有
    669.修剪二叉搜索树文章:代码随想录(programmercarl.com)视频:你修剪的方式不对,我来给你纠正一下!|LeetCode:669.修剪二叉搜索树_哔哩哔哩_bilibili思路:从图中可以看出......
  • 代码随想录算法训练营第二十三天 | 669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索
    Day22周末休息~元宵节快乐一、参考资料修剪二叉搜索树题目链接/文章讲解:https://programmercarl.com/0669.%E4%BF%AE%E5%89%AA%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%......
  • 《区块链基础知识25讲》-第二十三讲-重构区块链
    区块链的主要冲突透明度与隐私(读取区块链数据的操作)一方面需要透明度来明确所有权,另一方面系统用户又需要有一定的隐私安全与速度(向区块链写入数据的操作)哈希难题的解决减......
  • 小满nestjs(第二十三章 nestjs swagger接口文档)
    swagger用于提供给前端接口文档安装命令如下npminstall@nestjs/swaggerswagger-ui-express在main.ts注册swaggerasyncfunctionbootstrap(){constapp=awaitNe......