zoukankan      html  css  js  c++  java
  • 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-

  • 相关阅读:
    替换TStrings
    WordPress数据备份方案
    图像反色
    通过网络复制文件
    SQL Server的patindex和charindex的用法
    C冒泡排序 @100到200素数
    正则。IP验证
    C以二进制读、写、文本
    HTML下拉框、文本框、复选框!
    HTM页面获得本机时间
  • 原文地址:https://www.cnblogs.com/-Iris-/p/13056315.html
Copyright © 2011-2022 走看看