【HDOJ】1225 Football Score
这种结构体排序的题,十分容易考上机题,qsort+结构体解决。马上就要机考了,多练习一下这样的题目也好。
#include <stdio.h>
#include <string.h>
#include <stdlib.h> #define MAXNUM 100
#define NAMENUM 20
#define WIN 3
#define DRAW 1 typedef struct {
char name[NAMENUM];
int in, lost;
int score;
} team_st; team_st teams[MAXNUM];
int total; int isExist(char name[], int n) {
int i;
for (i=; i<n; ++i)
if (strcmp(teams[i].name, name) == )
return i; return -;
} void check(char name[], int in, int lost) {
int index = isExist(name, total); if (index == -) {
strcpy(teams[total].name, name);
index = total;
total++;
}
teams[index].in += in;
teams[index].lost += lost;
if (in > lost)
teams[index].score += WIN;
if (in == lost)
teams[index].score += DRAW;
} int comp(const void *a, const void *b) {
team_st *p1 = (team_st *)a;
team_st *p2 = (team_st *)b;
if (p1->score != p2->score)
return p2->score - p1->score;
else if ((p1->in-p1->lost) != (p2->in-p2->lost))
return (p2->in-p2->lost) - ((p1->in-p1->lost));
else if (p1->in != p2->in)
return p2->in - p1->in;
else
return strcmp(p1->name, p2->name);
} int main() {
int n;
int i, a, b;
char stra[NAMENUM], strb[NAMENUM]; while (scanf("%d", &n) != EOF) {
total = ;
memset(teams, , sizeof(teams));
for (i=; i<=n*(n-); ++i) {
getchar();
scanf("%s VS %s %d:%d", stra, strb, &a, &b);
check(stra, a, b);
check(strb, b, a);
}
qsort(teams, total, sizeof(team_st), comp);
for (i=; i<total; ++i)
printf("%s %d\n", teams[i].name, teams[i].score);
printf("\n");
} return ;
}
【HDOJ】1225 Football Score的更多相关文章
- 【HDOJ】4729 An Easy Problem for Elfness
其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...
- 【HDOJ】4374 One hundred layer
线性DP,使用单调队列优化. /* 4374 */ #include <iostream> #include <sstream> #include <string> ...
- 【BZOJ】1225: [HNOI2001] 求正整数
http://www.lydsy.com/JudgeOnline/problem.php?id=1225 题意:给一个数n,求一个最小的有n个约数的正整数.(n<=50000) #include ...
- 【HDOJ】【3506】Monkey Party
DP/四边形不等式 裸题环形石子合并…… 拆环为链即可 //HDOJ 3506 #include<cmath> #include<vector> #include<cst ...
- 【HDOJ】【3516】Tree Construction
DP/四边形不等式 这题跟石子合并有点像…… dp[i][j]为将第 i 个点开始的 j 个点合并的最小代价. 易知有 dp[i][j]=min{dp[i][j] , dp[i][k-i+1]+dp[ ...
- 【HDOJ】【3480】Division
DP/四边形不等式 要求将一个可重集S分成M个子集,求子集的极差的平方和最小是多少…… 首先我们先将这N个数排序,容易想到每个自己都对应着这个有序数组中的一段……而不会是互相穿插着= =因为交换一下明 ...
- 【HDOJ】【2829】Lawrence
DP/四边形不等式 做过POJ 1739 邮局那道题后就很容易写出动规方程: dp[i][j]=min{dp[i-1][k]+w[k+1][j]}(表示前 j 个点分成 i 块的最小代价) $w(l, ...
- 【HDOJ】【3415】Max Sum of Max-K-sub-sequence
DP/单调队列优化 呃……环形链求最大k子段和. 首先拆环为链求前缀和…… 然后单调队列吧<_<,裸题没啥好说的…… WA:为毛手写队列就会挂,必须用STL的deque?(写挂自己弱……s ...
- 【HDOJ】【3530】Subsequence
DP/单调队列优化 题解:http://www.cnblogs.com/yymore/archive/2011/06/22/2087553.html 引用: 首先我们要明确几件事情 1.假设我们现在知 ...
随机推荐
- Java的基础概念
JDK (Java Development Kit) Java Developer Kit contains tools needed to develop the Java programs, an ...
- (转).Net平台开源作业调度框架Quartz.Net
Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...
- Spring集成PageHelper的简单用法
1.Maven依赖,注意使用PageHelper时的版本必须与Mybatis版本对应 <!-- 添加Mybatis依赖 --> <dependency> <groupId ...
- Codevs 1218 疫情控制 2012年NOIP全国联赛提高组
1218 疫情控制 2012年NOIP全国联赛提高组 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description H 国有 n 个城市,这 ...
- 2016/7/6 神·CPU的人类极限在哪?
额,这其实是个搞怪贴 #include<stdio.h>int main(void){ int i,k; for(i=0;;i++) { k=i+222222222; printf(&qu ...
- 在Mac OS X中搭建STM32开发环境(2)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在上一篇文章中,我们在OSX中编译了ST-Link2调试工具,并且简单的对其功能进行了测试 ...
- C/C++代码检视要点
4.1.1 C/C++代码检视要点 代码检视技能属于开发人员的基本功,能够很大程度地反应出开发人员的能力水平,前面4.4.1节已经讲过提高评审检视的方法.下面以实际的C/C++语言方面的代 ...
- cookie、localStorage、sessionStorage之间的区别
sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在浏览器和服务器间不必 ...
- oracle创建job方法
oracle创建job方法 alter system enable restricted session;--创建表create table G_TEST ( ID NUMBER(12), ...
- Hash算法初见
hash算法 (hashmap 实现原理) Hash ,一般翻译做“ 散列” ,也有直接音译为“ 哈希” 的,就是把任意长度的输入(又叫做预映射, pre-image ),通过散列算法,变换成固定 ...