BashuOJ - 4479 足球联赛 暴力 水题 重庆一中高2018级竞赛班第四次测试 2016.7.25 Problem 1
2016-07-26 08:55
330 查看
【问题描述】
巴蜀中学新一季的足球联赛开幕了。足球联赛有 n只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得 3 分,输一场不得分,平局两只队伍各得一分。
英勇无畏的小鸿是机房的主力前锋,她总能在关键时刻踢出一些匪夷所思的妙球。但是很可惜,她过早的燃烧完了她的职业生涯,不过作为一个能够 Burning 的 girl,她的能力不止如此,她还能预测这个赛季所有球队的比赛结果。
虽然她能准确预测所有比赛的结果,但是其实她不怎么厉害,Mr.Gao 上数学课时她总是在 sleep,因此她的脑里只有整数没有实数,而且,她只会 10 以内非负整数的加法运算,因此她只有结果却无法知道谁会获得联赛的冠军。
小鸿想给冠军队伍的所有队员一个拥抱,所以她把计算结果的任务交给了你:现在,给你一个 n*n 的矩阵表示比赛情况。第 i 行第 j 列的字母表示在第 i 只队伍 在主场迎战第 j 只队伍的比赛情况,W 表示主队赢,L 表示主队输,D 表示平局。现在需要你给出最后能得到小鸿拥抱的队伍编号,如有多支队伍分数最高,按字典序输出编号。
【输入格式】
第一行一个整数 n。
接下来 n 行,每行 n 个字符,表示输赢情况。第 i 行第 i 列为 - ,因为一只队伍不可能与自己比赛。
【输出格式】
输出得分最高的队伍编号。如有多个在一行中输出,用一个空格分开。
【输入样例】
【样例1】
【样例2】
【输出样例】
【样例1】
【样例2】
【数据范围】
对于 40%的数据,满足 N<=20
对于 100%的数据,满足 N<=50
【来源】
4479 – 【NOIP2015-2】足球联赛 - Bashu OnlineJudge - 巴蜀中学
思路:这道题竟然没做对,读题不仔细,以为这个矩阵是对称的,(x,y)和(y,x)是同一场比赛。然而并不是,所以。。。
直接计算每个队的分最后排名即可,水题。
巴蜀中学新一季的足球联赛开幕了。足球联赛有 n只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得 3 分,输一场不得分,平局两只队伍各得一分。
英勇无畏的小鸿是机房的主力前锋,她总能在关键时刻踢出一些匪夷所思的妙球。但是很可惜,她过早的燃烧完了她的职业生涯,不过作为一个能够 Burning 的 girl,她的能力不止如此,她还能预测这个赛季所有球队的比赛结果。
虽然她能准确预测所有比赛的结果,但是其实她不怎么厉害,Mr.Gao 上数学课时她总是在 sleep,因此她的脑里只有整数没有实数,而且,她只会 10 以内非负整数的加法运算,因此她只有结果却无法知道谁会获得联赛的冠军。
小鸿想给冠军队伍的所有队员一个拥抱,所以她把计算结果的任务交给了你:现在,给你一个 n*n 的矩阵表示比赛情况。第 i 行第 j 列的字母表示在第 i 只队伍 在主场迎战第 j 只队伍的比赛情况,W 表示主队赢,L 表示主队输,D 表示平局。现在需要你给出最后能得到小鸿拥抱的队伍编号,如有多支队伍分数最高,按字典序输出编号。
【输入格式】
第一行一个整数 n。
接下来 n 行,每行 n 个字符,表示输赢情况。第 i 行第 i 列为 - ,因为一只队伍不可能与自己比赛。
【输出格式】
输出得分最高的队伍编号。如有多个在一行中输出,用一个空格分开。
【输入样例】
【样例1】
3 -WW W-W WW-
【样例2】
5 -DWWD L-WLL DD-WD DDL-L DDLL-
【输出样例】
【样例1】
1 2 3
【样例2】
1
【数据范围】
对于 40%的数据,满足 N<=20
对于 100%的数据,满足 N<=50
【来源】
4479 – 【NOIP2015-2】足球联赛 - Bashu OnlineJudge - 巴蜀中学
思路:这道题竟然没做对,读题不仔细,以为这个矩阵是对称的,(x,y)和(y,x)是同一场比赛。然而并不是,所以。。。
直接计算每个队的分最后排名即可,水题。
/* Name: football.cpp Copyright: Twitter & Instagram @stevebieberjr Author: @stevebieberjr Date: 26/07/16 09:07 */ #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n; char ch[55][55]; struct team { int score,id; }t[55]; bool cmp(team a,team b) { if(a.score==b.score) return a.id>b.id; return a.score<b.score; } int main() { freopen("football.in","r",stdin); freopen("football.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%s",ch[i]); t[i].id=i; } for(int i=1;i<=n;i++) { for(int j=0;j<n;j++) { if(i==j+1) continue; if(ch[i][j]=='W') t[i].score+=3; if(ch[i][j]=='D') { t[i].score+=1; t[j+1].score+=1; } if(ch[i][j]=='L') t[j+1].score+=3; } } sort(t+1,t+1+n,cmp); for(int i=n;i>=1;i--) { if(t[i].score>t[i-1].score) { printf("%d ",t[i].id); break; } else if(t[i].score==t[i-1].score) { printf("%d ",t[i].id); } } return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C++的template模板中class与typename关键字的区别分析
- C与C++之间相互调用实例方法讲解