程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 4393 Throw nails

HDU 4393 Throw nails

編輯:C++入門知識

因為第i個人第1秒走的距離Fi滿足0 <= Fi <= 500,所以502秒後所有人的名次都不會再變化。所以,前502秒可以暴搜,剩下的只要排序後直接輸出即可。
[cpp] 
#include <iostream> 
#include <cstring> 
#include <cstdio> 
#include <algorithm> 
#include <cmath> 
#include <vector> 
 
using namespace std; 
 
const int maxn = 50010; 
int t, n; 
 
struct Player { 
    int k, s, id, dis; 
}; 
Player p[maxn]; 
 
bool cmp(Player p1, Player p2) 

    if (p1.k != p2.k) { 
        return p1.k < p2.k; 
    } 
    if (p1.dis != p2.dis) { 
        return p1.dis > p2.dis; 
    } 
    return p1.id < p2.id; 

 
int main() 

    scanf("%d", &t); 
    for (int cas = 1; cas <= t; ++cas) { 
        scanf("%d", &n); 
        int f, s; 
        p[0].dis = (1 << 30); 
        p[0].k = -1; 
        p[0].id = -1; 
        for (int i = 1; i <= n; ++i) { 
            scanf("%d%d", &f, &s); 
            p[i].k = 1; 
            p[i].s = s; 
            p[i].id = i; 
            p[i].dis = f; 
        } 
        printf("Case #%d:\n", cas); 
        int Max = -1, idx; 
        for (int i = 1; i <= n; ++i) { 
            if (p[i].dis > Max) { 
                Max = p[i].dis; 
                idx = i; 
            } 
        } 
        p[idx].k = -1; 
        printf("%d", idx); 
        for (int i = 2; i <= min(n, 502); ++i) { 
            int Max = -1, idx; 
            for (int j = 1; j <= n; ++j) { 
                if (p[j].k == -1) continue; 
                p[j].dis += p[j].s; 
                if (p[j].dis > Max) { 
                    Max = p[j].dis; 
                    idx = j; 
                } 
            } 
            p[idx].k = -1; 
            printf(" %d", idx); 
        } 
        sort(p, p + n + 1, cmp); 
        for (int i = 503; i <= max(502, n); ++i) { 
            printf(" %d", p[i].id); 
        } 
        printf("\n"); 
    } 
    return 0; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved