UVALive - 4094 WonderTeam (贪心)

题目大意:

有n支队伍,每两支队伍打两场比赛(主客场各一次),胜得3分,平得1分,输不得分,比赛结束之后会评选出一个梦之队,梦之队满足以下条件:进球总数最多,胜利场数最多,丢求总数最少,三个都不能并列,求梦之队的最低排名

解析来自:https://blog.csdn.net/l123012013048/article/details/44001543

分析

1.让梦之队的胜利场的进球总数达到无穷大(当然这是不可能的),输的场都是进0球对方队伍进1球,平的场都是0:0的得分,这样即使梦之队只赢一场也能达到进球总数最多了,其他队伍的平局的时候就让其丢求数大于梦之队的总丢球数,这样梦之队的丢球总数就是最少了

2.胜利场数最多,胜利场的得分是3分,要让梦之队的排名尽量低的话,胜利场数就不能太多,输的场数让其多一点

所以让梦之队只赢两场,其他队伍都赢1场,这样就能推出梦之队的排名了

队伍         赢              输         平              总分

梦之队      2               n-1        n-3             n+3

队伍1        1              1           2 n-4           2n-1

队伍2        1              1            2n-4           2n-1

其他队伍  1               0            2n-3           2n

由以上可以推出

n <= 3 时 梦之队第一名

n == 4 时 第二名

n > 4 时 最后一名

#include<cstdio>  

int main() {
    int n;
    while( scanf("%d",&n) == 1 && n ) {
        if(n <= 3)
            printf("1\n");
        else if(n == 4)
            printf("2\n");
        else
            printf("%d\n",n);
    }
    return 0;
}  

原文地址:https://www.cnblogs.com/fht-litost/p/8974166.html

时间: 2024-10-16 12:54:02

UVALive - 4094 WonderTeam (贪心)的相关文章

UVALive 4731 dp+贪心

这个题首先要利用题目的特性,先贪心,否则无法进行DP 因为求期望的话,越后面的乘的越大,所以为了得到最小值,应该把概率值降序排序,把大的数跟小的系数相乘 然后这种dp的特性就是转移的时候,由 i推到i+1每次添加一个数,就要考虑这个新数应该和谁放在一组,枚举他放在哪一组即可 dp[i][j]代表当前第i个数有j个分组时候的最小值 dp[i][j]=dp[k][j-1]+i(prefix[i]-prefix[k-1]),k代表枚举第几个数开始和当前新添加的数为一组,prefix为前缀和,为了迅速得

UVALive 3835:Highway(贪心 Grade D)

VJ题目链接 题意:平面上有n个点,在x轴上放一些点,使得平面上所有点都能找到某个x轴上的点,使得他们的距离小于d.求最少放几个点. 思路:以点为中心作半径为d的圆,交x轴为一个线段.问题转换成用最少的店覆盖所有的线段.经典贪心.按右点从小到大排序,然后从左往右扫,每次选择区间右点就行了. 代码: #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using

UVALive 7146 (贪心+少许数据结构基础)2014acm/icpc区域赛上海站

这是2014年上海区域赛的一道水题.请原谅我现在才发出来,因为我是在太懒了.当然,主要原因是我刚刚做出来. 其实去年我就已经看到这道题了,因为我参加的就是那一场.但是当时我们爆零,伤心的我就再也没有看过那一场的题了.昨天我的队友的高中同学建议我们一起来打一打这场比赛吧,然后我才再次回顾这场比赛.结果一堆琐事,我一共也没有做多久的题,我的队友扎扎实实看了5个小时的题,把另一道水题给过了.全场我们也只过了那么一道题.学姐说,做重现赛和现场赛比较,需要去掉一题,那么我们又爆零了. 题意: 我方有n个人

UVALive 6911---Double Swords(贪心+树状数组(或集合))

题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4923 problem  description Last night, Kingdom of Light was attacked by Kingdom of Dark! The queen of Kingdom of Light, Queen Ar, was ca

UVALive 3664:Guess(贪心 Grade E)

vj题目链接 题意: 有n (n<16345)个人,每个人有三个数(小于1000且最多两位小数点),表示答对对应题的得分.规定总分越高的人rank越高.总分相同,id小的rank高.现在知道rank,问这个rank是否可能,如果可能,那么rank最小的那个人的最大得分是多少. 思路: 3个数,最多8种情况.然后从rank小往上推,每次选择一个最小的能符合条件的分数,当作这个人的分数.如果能推下去,则ok,否则,不能. 坑点: 精度很坑.转成整数才过了. 代码: #include <cstdio

UVALive - 4621 Cav 贪心 + 分析

题目大意:有一张洞穴地图,要在这个洞穴里面存放水,要求水不能碰到洞穴顶部.如今给出每一个位置的顶部位置和地面高度.问最多能够放多少水 解题思路:根据物理定理,每一段有水的连续区间,水位高度必须相等 所以我们能够求出在同一段连续区间內的水位高度,该水位高度等于最低洞穴顶部的高度.以此为根据,从左到右更新,再从右到左更新,就能够得到每一个位置的水位高度了 #include<cstdio> #include<algorithm> using namespace std; const in

I - Defeat the Enemy UVALive - 7146 二分 + 贪心

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5158 这样的受到两个东西限制的,很容易想到要排序,然后加进去multiset,加的时候保证一个key是成立的,就转化为一个key的问题了. 这题需要打死m个全部的军队. 那么应该是枚举m个军队,去找一个n打死它,或者同归于尽. 开始的时候我是枚举n去选m了,这是错误的. 因为

UVALive - 5848 Soju 贪心

题目大意:有两个集合A和B,A集合里面有n个点,B集合里面有m个点,A集合的所有的点的横坐标都比B集合的所有的点的横坐标还小 现在要求在A集合中和B集合中各选择一个点,使得这两点的曼哈顿距离达到最小 解题思路:分析式子abs(x1 - x2) + abs(y1 - y2) 这里假设(x1,y1)是A集合的点,(x2, y2)是B集合的点 因为B集合的点的横坐标都大于A集合的点的横坐标,所有abs(x1 - x2)可化作x2 - x1,现在就要讨论abs(y1 - y2)了 1.假设y2 >= y

【贪心】UVALive 6530——Football

Your favorite football team is playing a charity tournament, which is part of a worldwide fundraising e ort to help children with disabilities. As in a normal tournament, three points are awarded to the team winning a match, with no points to the los