AtcoderABC222场

A - Four DigitsA - Four Digits

在这里插入图片描述

题目大意

给定一个整数N,其范围在0到9999之间(包含边界)。在将N转换为四位数的字符串后,输出它。如果N的位数不足四位,则在前面添加必要数量的零。

思路分析

可以使用输出流的格式设置功能来实现这一点。
具体做法是,使用setw(4)和setfill(‘0’)来设置输出格式,将N输出为四位数,并在不足四位时用0进行填充。

时间复杂度

O(1)

AC代码

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    cout << setw(4) << setfill('0') << n << endl;
    return 0;
}

B - Failing Grade / B - Failing Grade /

在这里插入图片描述在这里插入图片描述

题目大意

有N个学生参加了一次考试。这些学生被标记为Student 1、Student 2等等,第i个学生得分为ai。
分数低于P分的学生被认为考试不及格,无法获得学分。求考试不及格的学生人数。

思路分析

题目要求计算考试不及格的学生人数,可以通过遍历每个学生的得分,并根据阈值P进行判断来实现。

时间复杂度

O(N)

AC代码

#include<bits/stdc++.h>
using namespace std;

int main() {
    int n, p, ans = 0;
    cin >> n >> p;
    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        if (a < p)
            ans++;
    }
    cout << ans << endl;
    return 0;
}

C - Swiss-System TournamentC - Swiss-System Tournament

在这里插入图片描述在这里插入图片描述在这里插入图片描述

题目大意

题目要求模拟一个石头剪刀布比赛,参赛选手分为2N人,根据比赛结果和ID号码对选手进行排名,最终输出排名结果。

思路分析

创建一个大小为2N的数组rank,其中每个元素是一个pair,表示参赛者的胜场数和ID号码。初始时,所有参赛者的胜场数都为0,ID号码按照输入顺序排列。

然后,按照比赛轮数M进行迭代。在每一轮比赛中,遍历每一个比赛对,根据比赛结果判断胜利者,并更新其胜场数。比赛结果的判断通过一个judge函数来实现,根据石头剪刀布的规则,判定两个选手之间的比赛结果。

每轮比赛结束后,根据选手的胜场数对rank数组进行排序,以确定排名。排序时,因为要使用sort函数,所以要首先根据胜场数的负值排序,然后根据ID号码排序。

最后,按照排名顺序输出参赛者的ID号码,注意要将ID号码加1,因为在代码中使用的是0-based索引。

时间复杂度

O(NMlogN)

AC代码

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

// 判断胜负的函数
int judge(char a, char b) {
    // -1: 平局,0:前一个人胜利,1:后一个人胜利
    if (a == b) return -1;
    if (a == 'G' && b == 'P') return 1;
    if (a == 'C' && b == 'G') return 1;
    if (a == 'P' && b == 'C') return 1;
    return 0;
}

int main() {
    int N, M;
    cin >> N >> M;  // 输入参赛人数N和比赛轮数M
    vector<string> S(2 * N);  // 存储所有参赛者的手势序列
    for (int i = 0; i < 2 * N; i++) {
        cin >> S[i];  // 输入每个参赛者的手势序列
    }

    vector<pair<int, int>> rank(2 * N);  // 存储参赛者的排名和ID
    for (int i = 0; i < 2 * N; i++) {
        rank[i] = make_pair(0, i);  // 初始化排名和ID,初始胜场数为0
    }
    // rank[i] = [x,y]  -> 第(i+1)名参赛者的胜场数为 -x,ID为 y

    for (int j = 0; j < M; j++) {
        for (int i = 0; i < N; i++) {
            int player1 = rank[2 * i].second;  // 第i个比赛对中的第一个参赛者的ID
            int player2 = rank[2 * i + 1].second;  // 第i个比赛对中的第二个参赛者的ID
            int result = judge(S[player1][j], S[player2][j]);  // 第j轮比赛中两位参赛者的结果
            if (result != -1) rank[2 * i + result].first -= 1;  // 根据比赛结果更新排名
        }
        sort(rank.begin(), rank.end());  // 按照胜场数对参赛者进行排序
    }

    for (auto p : rank) {
        cout << p.second + 1 << endl;  // 输出最终的排名
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/70543.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构刷题训练——链表篇(三)

目录 文章目录 前言 1. 题目一&#xff1a;环形链表Ⅱ 1.1 思路 1.2 分析 1.3 题解 1.4 方法二 2. 题目二&#xff1a;复制带随机指针的链表 2.1 思路 2.2 分析 2.3 题解 总结 前言 在这个专栏博客中&#xff0c;我们将提供丰富的题目资源和解题思路&#xff0c;帮助读者逐步提…

Java多线程(2)---线程控制和线程安全的详细讲解

目录 前言 一.线程控制方法 1.1启动线程--start() 1.2线程睡眠---sleep()方法 1.3中断线程--interrupt() 方法 1.4等待线程---join() 二.线程安全 2.1数据不安全---数据共享 ⭐不安全的演示和原因 ⭐不安全的处理方法 ⭐synchronized的使用 2.2数据不安全---内存可…

数据结构刷题训练:用栈实现队列(力扣OJ)

目录 前言 1. 题目&#xff1a;用栈实现队列 2. 思路 3. 分析 3.1 定义 “ 队列 ” 3.2 创建队列 3.3 入队 3.4 队头数据 3.5 出队 3.6 判空和销毁 4.题解 总结 前言 栈和队列是数据结构中的两个重要概念&#xff0c;它们在算法和程序设计中都有着广泛的应用。本文将带你深入了…

4.时间与窗口

4.1 时间类型 在Flink中定义了3种时间类型&#xff1a; 事件时间&#xff08;Event Time&#xff09;:事件的发生事件&#xff0c;数据本身自带时间字段。处理时间&#xff08;Processing Time&#xff09;&#xff1a;计算引擎处理时的系统时间。和摄取时间&#xff08;Inge…

(el-Form)操作(不使用 ts):Element-plus 中 Form 表单组件校验规则等的使用

Ⅰ、Element-plus 提供的 Form 表单组件与想要目标情况的对比&#xff1a; 1、Element-plus 提供 Form 表单组件情况&#xff1a; 其一、Element-plus 自提供的 Form 代码情况为(示例的代码)&#xff1a; // Element-plus 自提供的代码&#xff1a; // 此时是使用了 ts 语言环…

ELK中grok插件、mutate插件、multiline插件、date插件的相关配置

目录 一、grok 正则捕获插件 自定义表达式调用 二、mutate 数据修改插件 示例&#xff1a; ●将字段old_field重命名为new_field ●添加字段 ●将字段删除 ●将filedName1字段数据类型转换成string类型&#xff0c;filedName2字段数据类型转换成float类型 ●将filedNam…

【移动机器人运动规划】04 ——轨迹生成

文章目录 前言相关代码整理: 介绍Minimum Snap OptimizationDifferential Flatness(微分平坦)Minimum-snapSmooth 1D TrajectorySmooth Multi-Segment TrajectoryOptimization-based Trajectory Generation Convex Optimization&#xff08;凸优化&#xff09;凸函数和凸集凸优…

List list=new ArrayList()抛出的ArrayIndexOutOfBoundsException异常

1.应用场景&#xff0c;今天生产日志监控到一组new ArrayList() 进行add 异常&#xff0c;具体日志如下&#xff1a; eptionHandler.handler(178): TXXYBUSSINESS|执行异常 java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out…

SpringBoot禁用Swagger3

Swagger3默认是启用的&#xff0c;即引入包就启用。 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version> </dependency> <dependency><groupId…

理解-面向对象

目录 对象&#xff1a; 举例&#xff1a; 封装: 好处: 继承: 多态&#xff1a; 类和对象之间的关系 对象&#xff1a; 把一个东西看成对象&#xff0c;我们就可以孤立的审查它的性质&#xff0c;行为&#xff0c;进而研究它和其他对象的关系。 对象是一个应用系统中用…

Spring5 AOP 默认使用 JDK

这是博主在使用dubbo实现远程过程调用的时候遇到的问题&#xff1a; 我们如果在服务提供者类上加入Transactional事务控制注解后&#xff0c;服务就发布不成功了。原因是事务控制的底层原理是为服务提供者类创建代理对象&#xff0c;而默认情况下Spring是基于JDK动态代理方式创…

ssh-keygen 做好免密登录后不生效

免密说明 通常情况下&#xff0c;我们ssh到其他服务器需要知道服务器的用户名和密码。对于需要经常登录的服务器每次都输入密码比较麻烦&#xff0c;因此我们可以在两台服务器上做免密登录&#xff0c;即在A服务器可以免密登录B服务器。 在A服务器上登录B服务器时&#xff0c;…

数字图像处理 --- 相机的内参与外参(CV学习笔记)

Pinhole Camera Model&#xff08;针孔相机模型&#xff09; 针孔相机是一种没有镜头、只有一个小光圈的简单相机。 光线穿过光圈并在相机的另一侧呈现倒立的图像。为了建模方便&#xff0c;我们可以把物理成像平面(image plane)上的图像移到实际场景(3D object)和焦点(focal p…

Spring-2-透彻理解Spring 注解方式创建Bean--IOC

今日目标 学习使用XML配置第三方Bean 掌握纯注解开发定义Bean对象 掌握纯注解开发IOC模式 1. 第三方资源配置管理 说明&#xff1a;以管理DataSource连接池对象为例讲解第三方资源配置管理 1.1 XML管理Druid连接池(第三方Bean)对象【重点】 数据库准备 -- 创建数据库 create …

Python基础小项目

今天给大家写一期特别基础的Python小项目&#xff0c;欢迎大家支持&#xff0c;并给出自己的完善修改 &#xff08;因为我写的都是很基础的&#xff0c;运行速率不是很好的 目录 1. 地铁票价题目程序源码运行截图 2. 购物车题目程序源码运行截图 3. 名片管理器题目程序源码运行…

opencv实战项目 实现手势跟踪并返回位置信息(封装调用)

OpenCV 是一个基于 Apache2.0 许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。 需要提前准备opencv 和 mediapipe库 pip --default-timeout5000 install -i https://pypi.tuna.tsi…

nodejs+vue+elementui社区流浪猫狗救助救援网站_4a4i2

基于此背景&#xff0c;本研究结合管理员即时发布流浪猫狗救助救援信息与用户的需求&#xff0c;设计并实现了流浪猫狗救助救援网站。系统采用B/S架构&#xff0c;java语言作为主要开发语言&#xff0c;MySQL技术创建和管理数据库。系统主要分为管理员和用户两大功能模块。通过…

【Linux取经路】进程的奥秘

文章目录 1、什么是进程&#xff1f;1.1 自己写一个进程 2、操作系统如何管理进程&#xff1f;2.1 描述进程-PCB2.2 组织进程2.3 深入理解进程 3、Linux环境下的进程3.1 task_struct3.2 task_struct内容分类3.3 组织进程3.4 查看进程属性 4、结语 1、什么是进程&#xff1f; 在…

FreeRTOS

FreeRTOS官网&#xff1a;www.freertos.org 调度 实时操作系统 特点&#xff1a;如果有一个任务需要执行&#xff0c;实时操作系统会马上&#xff08;在较短时间内&#xff09;执行该任务&#xff0c;不会有较长的延时。这种特性保证了各个任务的及时执行。 实现方式&#…

web前端之CSS操作

文章目录 一、CSS操作1.1 html元素的style属性1.2 元素节点的style属性1.3 cssText属性 二、事件2.1 事件处理程序2.1.1 html事件2.1.2 DOM0事件&#xff08;适合单个事件&#xff09;2.1.3 DOM2事件&#xff08;适合多个事件&#xff09; 2.2 事件之鼠标事件2.3 事件之Event事…