codevs 2905 足球晋级
A市举行了一场足球比赛
一共有4n支队伍参加,分成n个小组(每小组4支队伍)进行小组循环赛(胜积3分,平积1分,负不计分)
(晋级的球队积分最高)
问晋级的队伍是那些?
PS:每小组只能晋级一支球队
第一行:一个整数n(保证是四的倍数)
换行读入队伍名
接下来读入比分
换行输出每支队伍的名字
2
King
Soon
River
Ken
King 1:0 Soon
Soon 1:3 River
Ken 0:0 River
King 9:0 River
Soon 7:3 Ken
King 4:1 River
Blue
Son
Rivr
Ke
Blue 1:0 Son
Son 1:3 Rivr
Ke 0:0 Rivr
Blue 4:3 Rivr
Son 7:3 Ke
Blue 4:1 Rivr
King
Blue
保证每个小组只有一支队伍晋级
1<=n<=100
这题数据不规范到炸!
有的比赛或名字后不加空格 有的加空格
读空格只能过最后一个
不读过前三个
只能分情况做了 ~!
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <map> #define Mod 13831 using namespace std;
map<int,int>q;
int n;
struct Node
{
int Hash;
int point;
char Name[];
}Team[];
bool cmp(Node a,Node b)
{
return a.point>b.point;
}
int main()
{
cin>>n;
if(n==)
{
while(n--)
{
char str[],Match[];
int maxn=-0x7fffffff;
for(int k=;k<=;k++)
{
gets(str);
int x=;
int len=strlen(str);
for(int i=;i<len;i++) x=(x*+str[i])%Mod;
Team[k].Hash=x;
strcpy(Team[k].Name,str);
Team[k].point=;
q[x]=k;
}
for(int k=;k<=;k++)
{
gets(Match);
int i=,len=strlen(Match),x1=,x2=,y1=,y2=;
while(Match[i]!=' ') x1=(x1*+Match[i++])%Mod;
i++;
while(Match[i]!=':') x2=x2*+(int)Match[i++]-;
i++;
while(Match[i]!=' ') y2=y2*+(int)Match[i++]-;
i++;
for(int k=i;k<len;k++) y1=(y1*+Match[k])%Mod;
if(x2>y2) Team[q[x1]].point+=;
else if(x2==y2) Team[q[x1]].point++,Team[q[y1]].point++;
else if(x2<y2) Team[q[y1]].point+=;
}
sort(Team+,Team++,cmp);
cout<<Team[].Name<<endl;
for(int i=;i<=;++i) Team[i].point=,Team[i].Hash=;
}
return ;
}
else
{
while(n--)
{
char str[],Match[];
for(int k=;k<=;k++)
{
int x=;cin>>Team[k].Name;
int len=strlen(Team[k].Name);
for(int i=;i<len;i++) x=(x*+Team[k].Name[i])%Mod;
Team[k].point=;
q[x]=k;
}
char ch=getchar();ch=getchar();
for(int l=;l<=;l++)
{
gets(Match);
int i=,len=strlen(Match),x1=,x2=,y11=,y2=;
while(Match[i]!=' ') x1=(x1*+Match[i++])%Mod;
i++;
while(Match[i]!=':') x2=x2*+(int)Match[i++]-;
i++;
while(Match[i]!=' ') y2=y2*+(int)Match[i++]-;
i++;
for(int k=i;k<len;k++) if(Match[k]!=' ')y11=(y11*+Match[k])%Mod;
if(x2>y2) Team[q[x1]].point+=;
else if(x2==y2) Team[q[x1]].point++,Team[q[y11]].point++;
else if(x2<y2) Team[q[y11]].point+=;
}
sort(Team+,Team++,cmp);
cout<<Team[].Name<<endl;
for(int i=;i<=;++i) Team[i].point=;
}
}
return ;
}
codevs 2905 足球晋级的更多相关文章
- 【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cn ...
- 足球和oracle列(4):巴西惨败于德国,认为,差额RAC拓扑控制!
足球与oracle系列(4):从巴西慘败于德国,想到,差异的RAC拓扑对照! 前期回想: 本来想说今晚,回头一想,应该是今早第二场半决赛就要开战了!先来回味一下之前的比赛,本届8支小组赛第一名已经所有 ...
- 【noip模拟赛7】足球比赛 树
描述 在2009的中国城市足球比赛中,在2^N支队中,有一些队在开赛前宣布了退出比赛.比赛采取的是淘汰赛.比如有4支队伍参加,那么1队和2队比赛,3队和4队赛,然后1队和2队的胜者与3队和4队的胜者争 ...
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- JS高级前端开发群加群说明及如何晋级
JS高级前端开发群加群说明 一.文章背景: 二. 高级群: 三. 加入方式: 四. 说明: 一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在“前端开发”关键字搜索结果第一名.当然取得这 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
随机推荐
- 书写优雅的shell脚本(插曲)- /proc
1. /proc目录 Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以 ...
- UVA-10827(前缀和降维)
题意: 给一个n*n的正方形,第一行和最后一行粘在一块,第一列和最后一列粘在一块,求这个环面上的最大的子矩形; 思路: 直接暴力是O(n^6)的复杂度,可以把前缀和求出来,这样就可以只用枚举四条边界就 ...
- 【CQ18阶梯赛第8场】题解
[A:HDU2032 杨辉三角]: 简单的递推,或者是基础的DP: 但是只有杨润东一个人1A,整体准确率只有8/37,具体原因不详. 经验:提交前一定要试一下比较特殊的数据或者最大的数据.其次,为了保 ...
- 「网络流24题」「LuoguP4014」 分配问题
Description 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为 cij.试设计一个将 n 件工作分配给 n 个人做的分配方案,使产生的总效益最大. Input 文 ...
- 【Cocos2d-HTML5 开发之一】新建HTML5项目及简单阐述与cocos2d/x引擎关系
真的是有一段时间没写博了,这段时间呢,发生的事情真的挺多,另外自己呢也闲来做了一些自己的喜欢的东西,主要做的还是基于Mac系统的Cocoa框架的各种编辑器吧.(对了,今年初也出了自己第二本书<i ...
- vue-resource 设置请求的参数以formData形式以及设置请求的过滤器
在main.js中添加下面的设置: Vue.http.options.emulateJSON = true;Vue.http.options.headers = {'Content-Type': 'a ...
- nodejs supvisor模块
在测试nodejs程序的时候,每次都需要在控制台编译,非常的麻烦.supervisor是一款无需重复手动编译,自动后台监听文件变化来自动编译,并且不需要在项目内require,使用非常的方便. 使用方 ...
- js跳转方法整理与自动刷新
js方式的页面跳转1.window.location.href方式 <script language="JavaScript" type="text/javascr ...
- Gradle系列之二 Groovy对文件的操作
Groovy对文件的操作 对文件的遍历 假设文件的原始内容为: hello,world 这里是北京 andorid and ios are good system 第一种方法:使用 eachLine( ...
- J20170507-ts
プロンプト n. 提示 オブジェクト n. 对象 アスタリスク * アンパサンド & スラッシュ / イテレータ n 迭代器 差し詰め 当前 スペル spell ...