【HDOJ】3789 奥运排序问题
写了个函数指针,这题目很水,但是佷烦。
#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 奥运排序问题的更多相关文章
- 九度oj 题目1007:奥运排序问题
九度oj 题目1007:奥运排序问题 恢复 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...
- 九度OJ 1007:奥运排序问题 (排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7344 解决:1568 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号从0到N- ...
- 九度OJ做题记录 更新.....
2015年1月7日 20:34:23 题目1007:奥运排序问题 有点意思,以后想另外方法快速做出来 2015年1月7日 21:03:56 有一个技巧就是,写了三个比较函数cmp1,cmp2,cmp ...
- 题解 Sue的小球/名次排序问题/方块消除/奥运物流
Sue的小球 名次排序问题 方块消除 奥运物流 Sue的小球 题目大意 有 \(n\) 个小球在下落,初始位置 \((x_i,y_i)\),下落速度为 \(v_i\).你初始位置在 \(x_0\),速 ...
- 编程之美—烙饼排序问题(JAVA)
一.问题描述 星期五的晚上,一帮同事在希格玛大厦附近的"硬盘酒吧"多喝了几杯.程序员多喝了几杯之后谈什么呢?自然是算法问题.有个同事说:"我以前在餐 馆打工,顾 ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 关于SQL中的排序问题
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...
随机推荐
- Microsoft Visual Studio Professional 2012 专业版 下载
记录(以下内容来自网络收集): 下载地址: https://www.microsoft.com/zh-cn/download/details.aspx?id=30682 直接iso连接下载址: htt ...
- MYSQL使用指南(下)
在上篇我们讲了登录.增加用户.密码更改等问题.下篇我们来看看MySQL中有关数据库方面的操作.注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束. 一 ...
- jQuery UI 日期控件--datepicker
在web开发中,日期的输入经常会遇到.我们会用的解决方法有: 1.自己写css和js,对日期进行控制:----有点浪费精力和时间: 2.用easyui插件中的日期插件来实现: 3.用juqery-ui ...
- 【转】Spring.NET学习笔记——目录
目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...
- ffmpeg与RTMP流媒体连接用法(翻译) http://www.chinavideo.org/forum.php?mod=viewthread&tid=15423
最近浏览国外网站时候发现,翻译不准确的敬请谅解. 1.将文件当做直播送至liveffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/liv ...
- 自定义流程gooflow.08 demo在线演示
一.功能简介 gooflow功能清单1.自定义流程绘制2.自定义属性添加3.支持3种步骤类型 普通审批步骤 自动决策步骤 手动决策步骤 4.决策方式(支持js决策,sql语句决策) 5.审批人员参与方 ...
- 深入了解jquery中的键盘事件
很多时候,我们需要获取用户的键盘事件,下面就一起来看看jquery是如何操作键盘事件的. 一.首先需要知道的是: 1.keydown() keydown事件会在键盘按下时触发. 2.keyup() k ...
- 移动端触摸滑动插件Swiper
移动端触摸滑动插件Swiper 04/02/2015 一.了解Swiper 目前移动端项目一般都需要具有触屏焦点图的效果,如果你也需要实现这一功能的话,Swiper是一个不错的选择. 1.他不需要加载 ...
- Android Activity与Service的交互方式
参考: http://blog.csdn.net/gebitan505/article/details/18151203 实现更新下载进度的功能 1. 通过广播交互 Server端将目前的下载进度,通 ...
- 从用python自动生成.h的头文件集合和类声明集合到用python读写文件
最近在用python自动生成c++的类.因为这些类会根据需求不同产生不同的类,所以需要用python自动生成.由于会产生大量的类,而且这些类是变化的.所以如果是在某个.h中要用include来加载这些 ...