[NOIP2011 普及组] 瑞士轮

news2024/11/24 11:09:47

[NOIP2011 普及组] 瑞士轮

题目背景

在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长。

本题中介绍的瑞士轮赛制,因最早使用于 1895 1895 1895年在瑞士举办的国际象棋比赛而得名。它可以看作是淘汰赛与循环赛的折中,既保证了比赛的稳定性,又能使赛程不至于过长。

题目描述

2 × N 2 \times N 2×N 名编号为 1 ∼ 2 N 1\sim 2N 12N 的选手共进行R 轮比赛。每轮比赛开始前,以及所有比赛结束后,都会按照总分从高到低对选手进行一次排名。选手的总分为第一轮开始前的初始分数加上已参加过的所有比赛的得分和。总分相同的,约定编号较小的选手排名靠前。

每轮比赛的对阵安排与该轮比赛开始前的排名有关:第 1 1 1 名和第 2 2 2 名、第 3 3 3 名和第 4 4 4名、……、第$2K - 1 名和第 名和第 名和第 2K$名、…… 、第$2N - 1 $名和第 2 N 2N 2N名,各进行一场比赛。每场比赛胜者得$1 $分,负者得 $0 $分。也就是说除了首轮以外,其它轮比赛的安排均不能事先确定,而是要取决于选手在之前比赛中的表现。

现给定每个选手的初始分数及其实力值,试计算在R 轮比赛过后,排名第$ Q$ 的选手编号是多少。我们假设选手的实力值两两不同,且每场比赛中实力值较高的总能获胜。

输入格式

第一行是三个正整数 N , R , Q N,R ,Q N,R,Q,每两个数之间用一个空格隔开,表示有 $2 \times N 名选手、 名选手、 名选手、R$ 轮比赛,以及我们关心的名次 Q Q Q

第二行是 2 × N 2 \times N 2×N 个非负整数 s 1 , s 2 , … , s 2 N s_1, s_2, …, s_{2N} s1,s2,,s2N,每两个数之间用一个空格隔开,其中$ s_i 表示编号为 表示编号为 表示编号为i$ 的选手的初始分数。 第三行是 2 × N 2 \times N 2×N 个正整数 w 1 , w 2 , … , w 2 N w_1 , w_2 , …, w_{2N} w1,w2,,w2N,每两个数之间用一个空格隔开,其中 w i w_i wi 表示编号为 i i i 的选手的实力值。

输出格式

一个整数,即 R R R 轮比赛结束后,排名第$ Q$ 的选手的编号。

样例 #1

样例输入 #1

2 4 2 
7 6 6 7 
10 5 20 15

样例输出 #1

1

提示

【样例解释】

【数据范围】

对于$30% $的数据, 1 ≤ N ≤ 100 1 ≤ N ≤ 100 1N100

对于$50% $的数据,$1 ≤ N ≤ 10,000 $;

对于 100 % 100\% 100%的数据, 1 ≤ N ≤ 100 , 000 , 1 ≤ R ≤ 50 , 1 ≤ Q ≤ 2 N , 0 ≤ s 1 , s 2 , … , s 2 N ≤ 1 0 8 , 1 ≤ w 1 , w 2 , … , w 2 N ≤ 1 0 8 1 ≤ N ≤ 100,000,1 ≤ R ≤ 50,1 ≤ Q ≤ 2N,0 ≤ s_1, s_2, …, s_{2N}≤10^8,1 ≤w_1, w_2 , …, w_{2N}≤ 10^8 1N100,000,1R50,1Q2N,0s1,s2,,s2N108,1w1,w2,,w2N108

noip2011普及组第3题。
【分析】
归并排序最简单

//【参考代码】
#include <iostream>
#include <algorithm>
using namespace std;

const int N = 1e5+5;//溢出
struct player
{
    int id;//编号
    int score;//分数
    int power;//实力
};
player team[N];
int n,r,q;//2*n个人 r轮比赛 q名的编号

bool cmp(player a, player b)//排序的规则
{
    if(a.score!=b.score)
        return a.score>b.score;
    else
        return a.id<b.id;
}

int main()
{
    cin>>n>>r>>q;
    for(int i=1; i<=2*n; i++)
    {
        team[i].id = i;
        cin>>team[i].score;
    }
    for(int i=1; i<=2*n; i++)
    {
        cin>>team[i].power;
    }
    sort(team+1,team+1+2*n,cmp);

    for(int j=1; j<=r; j++)
    {
        for(int i=1; i<=2*n; i+=2)
        {
            if(team[i].power<team[i+1].power)
                team[i+1].score++;
            else
                team[i].score++;
        }
        sort(team+1,team+1+2*n,cmp);
    }
    cout<<team[q].id;
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生成ssl证书并配置到nginx

生成ssl证书并配置到nginx 安装证书生成工具 apt-get update apt install software-properties-common add-apt-repository ppa:certbot/certbot apt-get update apt-get install certbot python3-certbot-nginx生成证书 首先在新网上创建一个A链接&#xff0c;域名与服务器做…

springboot引入security,测试接口报Unauthorized

1、报错截图 2、当前项目pom文件引入security <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-security</artifactId><version>2.2.2.RELEASE</version> </dependency> 3、解决…

centos7.9安装es7.12.0

下载es 国内镜像&#xff1a;https://mirrors.huaweicloud.com/elasticsearch/7.12.0/ 下载并上传内容到/usr/local目录下 解压&#xff1a; tar -zxvf /uar/local/elasticsearch-7.12.0-linux-x86_64.tar.gz安装 es一般不能用root启动&#xff0c;因此需要创建es:es用户和…

软件提示找不到msvcr120.dll怎么修复,分享5种靠谱的修复方法

当您在使用电脑过程中遇到程序运行出错&#xff0c;提示缺少msvcr120.dll文件怎么办。msvcr120.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;主要用于支持某些应用程序运行所需的C库文件。如果该文件丢失或损坏&#xff0c;依赖于此文件的应用程序便无…

Star CCM+创建报告与监测

前言 结合前文介绍&#xff0c;创建衍生零部件的目的是为了监测创建的点或者面的数据变化。如Star CCM衍生零部件的创建介绍&#xff0c;创建完所需的点或者面后&#xff0c;下一步就是对创建的点、面进行监测。 一 报告类型介绍 在Star中&#xff0c;通过创建报告来对监测的…

springboot+vue+mybatis物业管理系统+PPT+论文+讲解+售后

快速发展的社会中&#xff0c;人们的生活水平都在提高&#xff0c;生活节奏也在逐渐加快。为了节省时间和提高工作效率&#xff0c;越来越多的人选择利用互联网进行线上打理各种事务&#xff0c;通过线上物业管理系统也就相继涌现。与此同时&#xff0c;人们开始接受方便的生活…

​python使用selenium进行Web自动化测试​

什么是selenium Selenium 是 ThoughtWorks 提供的一个强大的基于浏览器的 Selenium 是一个用于 Web 应用程序测试的工具&#xff0c;测试直接自动运行在浏览器中&#xff0c;就像真正的用户在手工操作一样。支持的浏览器包括 IE、Chrome 和 Firefox 等。这个工具的主要功能包…

【React】 打包扫描出现高风险文件 YUI 版本太低 JSEncrypt

漏洞定位 扫出漏洞的情况&#xff0c;多是在说下面几个工具&#xff1a; jquery js-cookie jsencrypt 参考链接 YUI:2.9.0 (Link) http://www.cvedetails.com/cve/CVE-2012-5883/ 1.于是在打包后的代码中搜索 YUI&#xff08;不区分大小写&#xff0c;不进行全字匹配&…

BUUCTF靶场[MISC]荷兰宽带数据泄露、九连环

[MISC]荷兰宽带数据泄露 考点&#xff1a;查看路由器恢复丢失密码的文件 工具&#xff1a;RouterPassView——路由器密码查看工具 工具链接&#xff1a;https://routerpassview.en.lo4d.com/windows RouterPassView是一款老牌的路由器密码查看器&#xff0c;可以一键获取路…

终于搞懂Linux 设备树中的#address-cells,#size-cells 和reg 属性

目录 一、前置知识 1. 处理器平台2. reg 属性的基本格式3. reg 属性的作用 reg 用法 二、#address-cells 和 #size-cells 属性 1. 示例1 2. 示例23. 示例3 一、前置知识 要理解#address-cells和#size-cell 这两个属性&#xff0c;就要先了解 reg属性。 1. 处理器平台 下…

基于Django的图书管理系统

文章目录 前言一、页面展示1.登录2.前端页面3.后端页面 二、项目上传&#xff08;1&#xff09;导入数据库&#xff08;2&#xff09;导入项目&#xff08;3&#xff09;数据库密码修改&#xff08;4&#xff09;进入网站 总结 前言 本网站调用Django编写了图书管理网站&#…

【SpringBoot】SpringBoot3-基本介绍

目录 环境基本介绍pom.xml启动器依赖管理机制分析为什么导入starter-web所有相关依赖都导入进来&#xff1f;为什么版本号都不用写&#xff1f;自定义版本号第三方的依赖 总结 自动配置机制理解默认的包扫描规则配置默认值按需加载自动配置总结 自动配置流程问题流程步骤流程总…

网站开发初学者指南:2024年最新解读

在信息交流迅速的时代&#xff0c;网页承载着大量的信息&#xff0c;无论你知道还是不知道&#xff0c;所以你知道什么是网站开发吗&#xff1f;学习网站开发需要什么基本技能&#xff1f;本文将从网站开发阶段、网站开发技能、网站开发类型等角度进行分析&#xff0c;帮助您更…

前端JS必用工具【js-tool-big-box】学习,生成uuid,数组去重

js-tool-big-box这个前端工具库&#xff0c;今天又添加了2个实用功能&#xff0c;分别是生成uuid和数组去重。 目录 1 安装并引入 2 生成uuid 3 数组去重 1 安装并引入 安装最新版的js-tool-big-box工具包 由于生成uuid和数组去重属于两个不同对象下的方法&#xff0c;所以…

Trinity部署、使用与原理分析

文章目录 前言1、概述1.1、整体架构1.2、trinity-main1.3、childx 2、安装与使用2.1、源码安装2.1.1 部署系统依赖组件2.1.2 使用源码安装系统 2.2、使用方法 3、测试用例3.1、Splice系统调用压力测试3.2、其它系统调用压力测试3.3、自定义系统调用压力测试 4、总结4.1、部署架…

华为正式放弃高通芯片 | 百能云芯

5月15日&#xff0c;据外媒最新报道&#xff0c;高通公司正式确认&#xff0c;华为已无需依赖其处理器供应。 在出口许可被正式吊销前&#xff0c;高通的首席财务官已公开表示&#xff0c;预计明年与华为之间的芯片销售将为零&#xff0c;因为华为决定不再从高通购买4G芯片。 报…

centos7下使用docker安装fastdfs服务

先查看容器是否已经存在 docker ps -a 删除掉之前的tracker及storage服务 docker rm tracker docker rm storage 1、没有镜像先下载镜像 docker pull morunchang/fastdfs 2、运行服务 a、不指定物理服务器路径 docker run -d --name tracker --nethost morunchang/fastdfs sh…

Android Studio kotlin 转 Java

一. 随笔记录 java代码可以转化成kotlin代码&#xff0c;当然 Kotlin 反过来也可以转java 在Android Studio中 可以很方便的操作 AS 环境&#xff1a;Android Studio Iguana | 2023.2.1 二. 操作步骤 1.步骤 顶部Tools ----->Kotlin ------>Show Kotlin Bytecode 步…

Zotero 使用入门(笔记)

参考文献&#xff1a;Zotero入门完整教程-共27节-免费&#xff0c;李长太&#xff0c; 仅供参考学习

vue2基础语法03——过滤器filter

vue2基础语法03——过滤器filter 1. 前言1.1 需求1.2 不用过滤器实现1.2.1 插值语法、计算属性、方法实现1.2.2 更多关于计算属性 和 方法 2. 使用过滤器实现2.1 说明2.2 例子12.3 例子2——优化2.3.1 默认字母不分割2.3.2 默认字母以分割 2.4 过滤器使用地方 3. 全局过滤器4. …