写了个函数指针,这题目很水,但是佷烦。

 #include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
using namespace std; #define MAXN 305 typedef struct {
int id, g, j;
float gp, jp;
} count_st; typedef struct {
int r, id;
} rank_st; count_st counts[MAXN], buf[MAXN];
rank_st rank[][MAXN];
int ids[MAXN];
int n, m; int compg(const void *a, const void *b) {
return ((count_st *)b)->g - ((count_st *)a)->g;
} int compj(const void *a, const void *b) {
return ((count_st *)b)->j - ((count_st *)a)->j;
} int compgp(const void *a, const void *b) {
return ((count_st *)b)->gp>((count_st *)a)->gp ? :-;
} int compjp(const void *a, const void *b) {
return ((count_st *)b)->jp>((count_st *)a)->jp ? :-;
} void f(rank_st *a, int sel, int (*cmp)(const void*, const void *)) {
int i, j;
qsort(counts, m, sizeof(count_st), cmp);
for (i=, j=; i<m; ++i) {
if (sel == )
if (i && counts[i].g != counts[i-].g)
j = i;
if (sel == )
if (i && counts[i].j != counts[i-].j)
j = i;
if (sel == )
if (i && counts[i].gp != counts[i-].gp)
j = i;
if (sel == )
if (i && counts[i].jp != counts[i-].jp)
j = i;
(a+i)->id = counts[i].id;
(a+i)->r = j;
}
} int main() {
int i, j, k, v, min;
float dp; while (scanf("%d %d",&n,&m) != EOF) {
for (i=; i<n; ++i) {
buf[i].id = i;
scanf("%d %d %f", &buf[i].g, &buf[i].j, &dp);
buf[i].gp = buf[i].g / dp;
buf[i].jp = buf[i].j / dp;
}
for (i=; i<m; ++i) {
scanf("%d", &j);
counts[i] = buf[j];
ids[i] = j;
}
f(rank[], , &compg);
f(rank[], , &compj);
f(rank[], , &compgp);
f(rank[], , &compjp);
for (i=; i<m; ++i) {
min = MAXN;
for (j=; j<; ++j) {
for (k=; k<m; ++k) {
if (rank[j][k].id == ids[i]) {
if (rank[j][k].r < min) {
v = j;
min = rank[j][k].r;
}
break;
}
}
}
printf("%d:%d\n",min+,v+);
}
printf("\n");
} return ;
}

【HDOJ】3789 奥运排序问题的更多相关文章

  1. 九度oj 题目1007:奥运排序问题

    九度oj 题目1007:奥运排序问题   恢复 题目描述: 按要求,给国家进行排名. 输入:                        有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...

  2. 九度OJ 1007:奥运排序问题 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7344 解决:1568 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号从0到N- ...

  3. 九度OJ做题记录 更新.....

    2015年1月7日 20:34:23  题目1007:奥运排序问题 有点意思,以后想另外方法快速做出来 2015年1月7日 21:03:56 有一个技巧就是,写了三个比较函数cmp1,cmp2,cmp ...

  4. 题解 Sue的小球/名次排序问题/方块消除/奥运物流

    Sue的小球 名次排序问题 方块消除 奥运物流 Sue的小球 题目大意 有 \(n\) 个小球在下落,初始位置 \((x_i,y_i)\),下落速度为 \(v_i\).你初始位置在 \(x_0\),速 ...

  5. 编程之美—烙饼排序问题(JAVA)

    一.问题描述 星期五的晚上,一帮同事在希格玛大厦附近的"硬盘酒吧"多喝了几杯.程序员多喝了几杯之后谈什么呢?自然是算法问题.有个同事说:"我以前在餐      馆打工,顾 ...

  6. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  7. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  8. HDOJ 1326. Box of Bricks 纯水题

    Box of Bricks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  9. 关于SQL中的排序问题

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...

随机推荐

  1. Unity3D中读取CSV文件

    直接上代码 Part1: using UnityEngine; using System.IO; using System.Collections.Generic; public class CSV ...

  2. css制作导航栏的上下三角

    1)先完成一个导航条 <style type="text/css"> .nav-ul{ list-style: none; } .nav-ul li{ width: 1 ...

  3. ( 转 )Github配置

    以下转自 http://liuzhijun.iteye.com/blog/1457207 有问题请联系我删除. -----———————————————————————— 如果你的代码不知道放哪里好, ...

  4. C# DbHelperSQL,操作不同的数据库帮助类 (转载)

    本类主要是用来访问Sql数据库而编写的主要功能如下 .数据访问基础类(基于SQ),主要是用来访问SQ数据库的. .得到最大值:是否存在:是否存在(基于SQParameter): . 执行SQL语句,返 ...

  5. 从腾讯QQ升级游戏之“快速加入游戏”功能的实现缺陷看C/S之间如何正确分配相关协作

    转载:http://space.itpub.net/17007506/viewspace-615570 笔者在闲暇时,偶尔会登录腾讯QQGame玩玩升级游戏.这确实是一款非常优秀的软件作品,腾讯的开发 ...

  6. asp.net命名规范

    以下命名规范是在编程中,可以辅助快速编程的良好方式之一,我一点点的整理出来,以便形成自己的编程规范.还有待完善... 0.产品命名规范: 结构 层次 产品 模块 功能 命名规则 UI(界面层) Web ...

  7. OC基础-day05

    #pragma mark - Day05_01_NSObject类 NSObject类 1). NSObject是Foundation框架中的1个类. 在这个类中有1个类方法,叫做new 这个方法的作 ...

  8. Constant is not finite! That's illegal. constant:inf'

    原本使用正常的情况, 切换为测试库突然出现这个错误, 网上搜索并排查后得出导致这个问题的原因: (1)就是你的除数为0(2)除数或者被除数为null 找出你出错的界面, 并打断点, 看看是否出现上面两 ...

  9. redis【摘自网上,只为以后查看】

    ubuntu安装启动redis 1.下载安装 cd /tmp wget http://redis.googlecode.com/files/redis-2.2.13.tar.gz tar -zxf r ...

  10. AS3.0的int uint Number的使用原则

    int uint Number的使用原则: 1.能用整数值时优先使用:int uint 2.整数值有正负时使用:int 3.只处理正整数时使用:uint 4.处理好和颜色相关的值时使用:uint 5. ...