P1309 瑞士轮
时间:2020-06-06
本文章向大家介绍P1309 瑞士轮,主要包括P1309 瑞士轮使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
我一开始看着这个题
简单的以为
本题是一个模拟外加排序
所以直接一手sort
然后喜提60分
所以我仔细研究了一下
发现每个人都只和前一个人比赛
所以排序变化仅在2人之间
所以明显归并排序的复杂度要快于快速排序
所以
可以将sort改成手写的归并排序
但是……
我是个懒人
所以直接stable_sort
algorithm函数中的归并排序
见代码:
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 struct node{ 5 int id; 6 int s; 7 int w; 8 9 }a[200005]; 10 bool comp(node a,node b){ 11 if(a.s!=b.s) return a.s>b.s; 12 else return a.id<b.id; 13 } 14 int main() 15 { 16 int N,R,Q; 17 int ans=0; 18 cin>>N>>R>>Q; 19 for(int i=1;i<=2*N;i++) 20 cin>>a[i].s ; 21 for(int i=1;i<=2*N;i++) 22 cin>>a[i].w ; 23 for(int i=1;i<=2*N;i++) 24 a[i].id=i; 25 sort(a+1,a+1+2*N,comp); 26 while(ans!=R) 27 { 28 for(int i=1;i<=2*N;i+=2) 29 if(a[i].w>a[i+1].w) a[i].s++; 30 else a[i+1].s++; 31 ans++; 32 stable_sort(a+1,a+1+2*N,comp); 33 } 34 cout<<a[Q].id; 35 }
-end-
原文地址:https://www.cnblogs.com/-Iris-/p/13056315.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法