SYCOJ906瑞士轮
模拟题
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+520;
int n,r,q,res1=1,res2=1;
struct grade
{
int total,num,abi;
}a[N*4],win[N*4],lose[N*4];
bool cmp(grade x,grade y)
{
return x.total>y.total||x.total==y.total&&x.num<y.num;
}
void merge_sort(int res1,int res2)
{
int l=1,w=1,cnt=1;
while(l<res1&&w<res2)
{
if(cmp(win[l],lose[w])) a[cnt++]=win[l++];
else a[cnt++]=lose[w++];
}
while(l<res1) a[cnt++]=win[l++];
while(w<res2) a[cnt++]=lose[w++];
}
int main()
{
scanf("%d%d%d",&n,&r,&q);
for(int i=1;i<=n*2;i++) scanf("%d",&a[i].total);
for(int i=1;i<=n*2;i++) scanf("%d",&a[i].abi),a[i].num=i;
sort(a+1,a+1+n*2,cmp);
// for(int i=1;i<=n*2;i++) cout<<a[i].total<<" ";
// puts("");
while(r--)
{
res1=1,res2=1;
for(int i=1;i<=n;i++)
{
if(a[i*2-1].abi>a[i*2].abi) a[i*2-1].total++,win[res1++]=a[i*2-1],lose[res2++]=a[i*2];
else a[i*2].total++,win[res1++]=a[i*2],lose[res2++]=a[i*2-1];
}
// sort(a+1,a+1+n*2,cmp); 卡sort
// for(int i=1;i<=n*2;i++) cout<<a[i].total<<' ';
// puts("");
// for(int i=1;i<=n*2;i++) cout<<a[i].num<<' ';
// puts("");
merge_sort(res1,res2);
}
cout<<a[q].num<<'\n';
return 0;
}
如果是每次用sort会超时。
这题是一道归并题,记录每一次的win and lose ,因为本身按照排名来算的,那么其本身就是有序的,所以完全可以在o(n)内完成操作,每次的名次在比完直接可以知道,那么直接按照归并双指针合并即可。
SYCOJ906瑞士轮的更多相关文章
- NOIP201103瑞士轮【B002】
[B002]瑞士轮[B级]出自附中OJ————————————————————————————————————————————————————————————————————————————————— ...
- NOIP2011 普及组 T3 洛谷P1309 瑞士轮
今天题做太少,放道小题凑数233 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公 ...
- NOIP201103瑞士轮
试题描述 [背景]在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程 ...
- CODEVS 1132 瑞士轮
题目描述 Description 背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平, ...
- [NOIP2011]瑞士轮
noip2011普及组第3题. 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平 ...
- [NOIP2011普及组]瑞士轮 JAVA实现
题目描述 2*N名编号为1~2N的选手共进行R轮比赛.每轮比赛开始前,以及所有比赛结束后,都会按照总分从高到低对选手进行一次排名.选手的总分为第一轮开始前的初始分数加上已参加过的所有比赛的得分和.总分 ...
- P1309 瑞士轮 排序选择 时间限制 归并排序
题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分 ...
- 洛谷P1309 瑞士轮(归并排序)
To 洛谷.1309 瑞士轮 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平, ...
- NOIP2011普及组 瑞士轮
OJ地址: https://www.luogu.org/problemnew/show/P1309 http://bailian.openjudge.cn/practice/4031/ 总时间限制: ...
随机推荐
- [BUUCTF]PWN——bjdctf_2020_babyrop2
bjdctf_2020_babyrop2 附件 步骤: 例行检查,64位程序,开启了NX和canary保护 2. 试运行一下程序,看看大概的情况 提示我们去泄露libc 3. 64位ida载入,从ma ...
- [BUUCTF]REVERSE——xor
xor 附件 步骤: 附件很小,直接用ida打开,根据检索得到的字符串,找到程序关键函数 程序很简单,一开始让我们输入一个长度为33的字符串给v6,然后v6从第二个字符开始与前一个字符做异或运算,得到 ...
- 不同机房vpc使用openswan打通内网
1.测试环境: 北京6云主机:120.92.51.75/10.0.3.13 VPC:10.0.0.0/16 Ren-test 上海2云主机:42.157.163.120/192.168.3.3 ...
- 当PowerDesigner的工具栏不见时候该怎么调出来
当PowerDesigner的工具栏不见时候该怎么调出来,如下所示:选中[Palette]便可
- springboot 配置devtools热部署(不用重启服务可以刷新页面)
一.加入devtools依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...
- git clone报错: Out of memory, malloc failed (tried to allocate 524288000 bytes)
IDEA 拉取项目报错:Out of memory, malloc failed (tried to allocate 524288000 bytes) 执行 git config --global ...
- UDP&串口调试助手用法(1)
一览 UDP 串口 常用 功能概述 概览 支持UDP通信协议: 广播.单播.组播 支持串口通信 配置了常用的配置,常用的进制转化: 2进制,8进制,10进制,和16进制之间的转换 配置了 计算器,加减 ...
- 【LeetCode】87. Scramble String 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 动态规划 日期 题目地址:https://le ...
- 【LeetCode】945. Minimum Increment to Make Array Unique 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力求解,TLE 一次遍历 日期 题目地址:http ...
- 【LeetCode】225. Implement Stack using Queues 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...