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

 #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. CentOS隐藏nginx版本号

    在/usr/local/nginx/conf/目录中,修改nginx.conf文件 在http {  }段中加入 http { server_tokens off; }

  2. 第一篇:杂项之pymysql连接池

    杂项之pymysql连接池   杂项之pymysql连接池 本节内容 本文的诞生 连接池及单例模式 多线程提升 协程提升 后记 1.本文的诞生 由于前几天接触了pymysql,在测试数据过程中,使用普 ...

  3. build/envsetup.sh中hmm、get_abs_build_var、get_build_var解析

    function hmm() { # 打印帮助信息 cat <<EOF Invoke ". build/envsetup.sh" from your shell to ...

  4. UESTCOJ-BiliBili, ACFun… And More!(水题)

    BiliBili, ACFun… And More! Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Ja ...

  5. 使用html5兼容低版本浏览器

    因为html5 新出的一些语义化的标签,在低版本浏览器下不能识别,举个例子,比如你写了一个 header 标签中,写了一段文本,在低版本浏览器下,肯定是能看到的,但是,那是他是不认识 header标签 ...

  6. 学习java随笔第五篇:流程控制

    条件语句 if(表达式){方法体}else if(表达体)else{方法体} 简写形式:if... 一般形式:if...else... 完整形式:if...else if...else 分支语句 sw ...

  7. DNS(域名系统)域名解析设置

    DNS(Domain Name System,域名系统), 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最 ...

  8. 组策略彻底解决windows 2003 终端数

         win2003的话可以从组策略修改: 组策略级别要高于终端服务配置,当启用组策略后终端服务配置中的相应选项会变成灰色不可修改 运行-gpedit.msc-计算机配置-管理模板-Windows ...

  9. count(*),count(1)和count(主键) 区别

    看如下数据: SQL> select count(*) from ysgl_compile_reqsub; COUNT(*) ---------- 已用时间: : : 07.51 SQL) fr ...

  10. SQL打印全年日历

    数据库环境:SQL SERVER 2008R2 我之前有写过打印本月日历的SQL,里头有详细的说明.具体请参考前面的博文——生成本月日历. 全年日历只是在本月日历的基础上加了月信息,并按月份分组求得. ...