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

 #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. jquery 提示信息显示后自动消失的具体实现

    方法一: 复制代码 代码如下: $("#errormsg").html("您的信息输入错误,请重试!").show(300).delay(3000).hide( ...

  2. android - DefaultHttpClient设置超时.

    Android的DefaultHttpClient中,超时设置需要调用HttpConnectionParams.setConnectionTimeout方法,如(以下代码的31~35行代码): ref ...

  3. Java5中的线程池实例讲解

    Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活.本文通过一个网络服务器模型,来实践Java5的多线程 ...

  4. java开发规范总结_代码编码规范

    规范需要平时编码过程中注意,是一个慢慢养成的好习惯 1.基本原则 强制性原则:     1.字符串的拼加操作,必须使用StringBuilder:     2.try…catch的用法 try{ }c ...

  5. UITabBar的隐藏

    方式一: // 重写导航控制器的push方法 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL) ...

  6. 查看Safari和钥匙串中的密码

    Safari Safari的同步书签功能很棒,还可以看到其他设备没关掉的网页.为了省时间,一些经常进的网站,比如博客,邮箱等,我都会选择让Safari保存密码,还使用iCloud同步!因为一直很放心苹 ...

  7. js中的forin

    前言 自己在平时没事干练练手,发现的以前一直以为是错的.幸亏今天知道了,要不说起来自己还不知道呢. 过程 遍历前置页面上的textbox,给他们赋值(js). 一开始自己用forin遍历的. 如论如何 ...

  8. 开发中遇到的angularJs的小问题

    1.在使用自定义指令后如果需要将指令内部的数据传给外层controller需要设置scope属性,此时注意,如果指令内传出的数据在某种情况下需要清空,如传出一个选中元素的数组,点击清空按钮则清空选中这 ...

  9. 常用css表达式-最小宽度-上下居中

    /* IE6下最小宽度的CSS表达式 */ width:100%; min-width:1024px; _width:expression((document.documentElement.clie ...

  10. C对字符串的部分操作

    字符串分割(C++)   经常碰到字符串分割的问题,这里总结下,也方便我以后使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char ...