• pku2153 Rank List


    http://poj.org/problem?id=2153

    二分查找

     1 #include <stdio.h>
     2 #include <iostream>
     3 #include <string>
     4 #include <string.h>
     5 #include <map>
     6 
     7 using namespace std;
     8 
     9 int n, m;
    10 map<string, int> map1;
    11 int count1[10010] = {0};
    12 int sort1[10010];
    13 
    14 string ctos(char s[])
    15 {
    16     int i;
    17     string r;
    18     for(i=0; s[i]; i++)
    19     {
    20         r += s[i];
    21     }
    22     return r;
    23 }
    24 
    25 int cmp(const void *a, const void *b)
    26 {
    27     return *((int *)b) - *((int *)a);
    28 }
    29 
    30 int bs(int l, int h, int v)
    31 {
    32     int m;
    33     while ( l < h )
    34     {
    35         m = ( l + h ) >> 1;
    36         if (sort1[m] > v)
    37         {
    38             l=m+1;
    39         }
    40         else
    41         {
    42             h=m;
    43         }
    44     }
    45     return l; 
    46 }
    47 
    48 int main()
    49 {
    50     int i, j, x, y, k;
    51     char s[33] = "\0";
    52     string s1;
    53     scanf("%d%*c", &n);
    54     for(i=1; i<=n; i++)
    55     {
    56         gets(s);
    57         s1 = ctos(s);
    58         map1.insert(make_pair(s1, i));
    59         memset(s, 0, sizeof(s));
    60     }
    61     scanf("%d", &m);
    62     for(i=1; i<=m; i++)
    63     {
    64         for(j=1; j<=n; j++)
    65         {
    66             scanf("%d%*c", &x);
    67             gets(s);
    68             s1 = ctos(s);
    69             y = map1[s1];
    70             //printf("%d %d\n", x, y);
    71             count1[y] += x;
    72         }
    73         for(j=1; j<=n; j++)
    74         {
    75             sort1[j] = count1[j];
    76         }
    77         k = sort1[map1["Li Ming"]];
    78         qsort(sort1+1, n, sizeof(sort1[0]), cmp);
    79         printf("%d\n", bs(1, n+1, k));
    80     }
    81     return 0;
    82 }
  • 相关阅读:
    Transaction 'IREG', Abend 'APCT', at '????'.
    CICS中设置是否具有可修改性
    常用命令总结
    常用语句总结
    _func_
    数组排序返回索引-python和c++的实现
    数组的并行求和-cuda实现
    Pytorch 多GPU训练-多计算节点并行-All you need
    Pytorch 多GPU训练-单运算节点-All you need
    Windows 编程中的问题
  • 原文地址:https://www.cnblogs.com/yuan1991/p/pku2153.html
Copyright © 2020-2023  润新知