UVALive 7147 World Cup(数学+贪心)(2014 Asia Shanghai Regional Contest)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=648&page=show_problem&problem=5159
In normal football games, the winner team gets 3 points, loser team gets 0 point, and if there is a draw
game, both of the teams get 1 point.
In World Cup 1994, Group D there is an interest thing happened. There are 4 teams in that group,
Argentina, Nigeria, Bulgaria and Greece. Greece lost all the 3 matehes and scored 0. Argentina defeated
Nigeria, Nigeria defeated Bulgaria and Bulgaria defeat Argentina. Since there are only 2 teams could
advance to the next stage, one of the 3 teams will be eliminated. It’s really a surprise that a team
scored 6 will be eliminated in a 4 advance 2 group competition. That is really interesting and we’d like
to dig it deeper.
In this problem, there are N teams in a group. Within a group, any two teams will play each other
exactly once, so each team will have N − 1 matches in total.
In a match, the winner team will get A points and the loser team gets C points. If the match ends
with a draw, each of the teams gets B points. When all matches finished, the teams will be ranked by
their score (in case of multiple teams get the same score, they will be ordered randomly), and the top
M teams from the group can advance to the next stage.
Our questions are: What is the maximum possible score that a team can earn and still not advance?
(Note that there may be other teams in the same group that also earn that same score and do advance.)
Similarly, what is the minimum possible score that a team can earn and still advance?
Input
The first line of the input gives the number of test cases, T. T cases follow. Each case has two lines.
The first line contains two numbers, N and M. The second line contains three numbers, A, B, and C.
Output
For each test case, output one line containing ‘Case #x: y z’, where x is the test case number (starting
from 1) and y is maximum score that a team may be eliminated. z is the minimum score that a team
may advance to the next stage.
题目大意:一场比赛,赢的得A分,输的得C分,平手都得B分。有n支队伍,分别比赛一次,选前m个队伍晋级(分数相同的随机排名)。问:可能的最大落榜分数,可能的最小晋级分数。
思路:首先若A<C,交换A和C。
考虑第一个问题,贪心地让分数都尽量集中到前m+1个队伍身上,那么就要后n-m-1个队伍都给m+1个队伍最多的分数,即max{A, B}。
那么前m+1个队伍的竞技中,希望分数尽量地平均,则要赢一场便输一场,或者全部平手,则有floor(m/2)场得分为max{A + C, B + B}。
若m为奇数,那么最后一场要有一半的队伍获胜,或全部平手,此时最低分数为max{B, C}。
同样,考虑第二个问题,贪心得让后n-m+1的队伍分数都尽量少,那么久要前m-1个队伍给后n-m+1个队伍最少的分数,即min{B, C}。
那么后n-m+1个队伍的竞技中,也是希望分数尽量地平均,则要赢一场便输一场,或者全部平手,则有floor((n-m)/2)场得分为min{A + C, B + B}。
若n-m为奇数,那么最后一场要有一半的队伍获胜,或全部平手,此时最高分数为min{A, B}。
然后就做完了,证明我不会。
代码(0.003S):
#ifdef OYK_JUDGE
#define longformat "%I64d"
#else
#define longformat "%lld"
#endif // OYK_JUDGE #include <cstdio>
#include <algorithm>
using namespace std;
typedef long long LL; int n, m, a, b, c, T; LL solve1() {
LL res = max(a, b) * LL(n - m - );
res += LL(m) / * max(a + c, b + b);
if(m & ) res += max(b, c);
return res;
} LL solve2() {
LL res = min(b, c) * LL(m - );
res += LL(n - m) / * min(a + c, b + b);
if((n - m) & ) res += min(a, b);
return res;
} int main() {
scanf("%d", &T);
for(int t = ; t <= T; ++t) {
scanf("%d%d%d%d%d", &n, &m, &a, &b, &c);
if(a < c) swap(a, c);
printf("Case #%d: " longformat " " longformat "\n", t, solve1(), solve2());
}
}
UVALive 7147 World Cup(数学+贪心)(2014 Asia Shanghai Regional Contest)的更多相关文章
- UVALive 7146 Defeat the Enemy(贪心+STL)(2014 Asia Shanghai Regional Contest)
Long long ago there is a strong tribe living on the earth. They always have wars and eonquer others. ...
- UVALive 7138 The Matrix Revolutions(Matrix-Tree + 高斯消元)(2014 Asia Shanghai Regional Contest)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...
- UVALive 7143 Room Assignment(组合数学+DP)(2014 Asia Shanghai Regional Contest)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...
- UVALive 7141 BombX(离散化+线段树)(2014 Asia Shanghai Regional Contest)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...
- UVALive 7139 Rotation(矩阵前缀和)(2014 Asia Shanghai Regional Contest)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...
- UVALive 7148 LRIP(树的分治+STL)(2014 Asia Shanghai Regional Contest)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...
- 2014 Asia AnShan Regional Contest --- HDU 5073 Galaxy
Galaxy Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5073 Mean: 在一条数轴上,有n颗卫星,现在你可以改变k颗 ...
- hdu5071 2014 Asia AnShan Regional Contest B Chat
模拟题: add的时候出现过的则不再添加 close的时候会影响到top rotate(Prior.Choose)的时候会影响到top /*============================== ...
- dp --- 2014 Asia AnShan Regional Contest --- HDU 5074 Hatsune Miku
Hatsune Miku Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5074 Mean: 有m种音符(note),现在要从 ...
随机推荐
- InstallShield Limited Edition制作安装文件
由于InstallShield Limited Edition for Visual Studio的教程.资料太少,所以我今天才决定写这个文章,专门针对C#项目打包,包括打包集成Microsoft . ...
- Android底部菜单的实现
前言:以前制作菜单使用TabHost,但是android 3.0以上就被废弃了,google已经不建议使这个类了.ActionBar也是菜单,不过在头部,算是导航了 ===本文就介绍怎么制作底部菜单= ...
- Sublime Text 2配置文件详解
Sublime Text 2是那种让人会一眼就爱上的编辑器,不仅GUI让人眼前一亮,功能更是没的说,拓展性目前来说也完全够用了,网上介绍软件的文章和推荐插件的文章也不少,而且很不错,大家可以去找找自己 ...
- php文件写入PHP_EOL与FILE_APPEND
PHP_EOL 换行符 unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 FILE_APPEND 用于文本追加 ...
- Unity学习疑问记录之图片画质
http://blog.csdn.net/candycat1992/article/details/22794773
- Electronic oscillator
https://en.wikipedia.org/wiki/Electronic_oscillator An electronic oscillator is an electronic circui ...
- 如何在spring容器开始后,和销毁前,执行一些操作
转:参考文档:资料链接
- Oracle中日期时间的操作比较和加减-入门基础(转)
Oracle关于时间/日期的操作 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual ...
- Photosohp 2017 已经发布!(下载地址及破解方法在文章底部)
Adobe Creative Cloud 软件于2016.11.2 全面更新,Adobe Creative Cloud 2017 震撼登场 全新的 2017版本,包含 Photoshop.Illust ...
- How to install starDIct on suse OS?
1. Access page http://code.google.com/p/stardict-3/ to download starDict package or use zypper in to ...