zoukankan      html  css  js  c++  java
  • uva7147 World Cup(思路)

    题意:

    一共有n(1e9)个人,有m(1e9)个晋级,两两之间打一次,输赢平各有一个得分,平分随机排名,问晋级的人可能的最小得分和没晋级的人可能的最大得分。

    思路:

    就是想一下情况就好了,如果赢的分不如输的分高,就交换一下,要求晋级的人的最小得分,那他肯定是第m名,

    就让前m-1个人全都赢了他和那些没晋级的人(这样确保前m-1个人得分最大了,内部怎么搞无所谓),

    然后他跟剩下的那些没晋级的人可以全都平,可以赢的局数大于等于一半,这里要讨论一下,如果是要打偶数局,那肯定输赢个半,如果是奇数局,那就要输赢个半还剩下一局,

    那局要取平和赢中较低的一种(平的话就是跟后面的人全都并列,但也晋级了),还要讨论一下所有人都平的情况,有可能这样是最低的。

    然后是求没晋级的人可能的最大得分。思路差不多吧,他跟剩下的没晋级的人打全都赢了(晋级的m个人也是),然后就是他跟晋级的m个人打,

    可能输赢个半或者奇数的时候剩下的那局取输和平的较大的一种,跟前面一样的,再比一下全平的取一个最大。

    /* ***********************************************
    Author        :devil
    ************************************************ */
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <stack>
    #include <map>
    #include <unordered_map>
    #include <string>
    #include <time.h>
    #include <cmath>
    #include <stdlib.h>
    #define rep(i,a,b) for(int i=a;i<=b;i++)
    #define dep(i,a,b) for(int i=a;i>=b;i--)
    #define ou(a) printf("%d
    ",a)
    #define pb push_back
    #define pii pair<int,int>
    #define mkp make_pair
    #define IN freopen("in.txt","r",stdin);
    #define OUT freopen("out.txt","w",stdout);
    using namespace std;
    typedef long long LL;
    const int inf=0x3f3f3f3f;
    const int mod=1e9+7;
    const int N=1e5+10;
    int t;
    LL n,m,a,b,c;
    int main()
    {
        scanf("%d",&t);
        for(int cas=1;cas<=t;cas++)
        {
            cin>>n>>m>>a>>b>>c;
            if(a<c) swap(a,c);
            LL ans1=b*(n-1);
            LL ans2=ans1;
            LL cnt=(m/2)*(a+c);
            if(m%2!=0) cnt+=max(b,c);
            ans1=max(ans1,(n-m-1)*a+max(m*b,cnt));
            cnt=(n-m)/2*(a+c);
            if((n-m)%2!=0) cnt+=min(b,a);
            ans2=min(ans2,(m-1)*c+min((n-m)*b,cnt));
            printf("Case #%d: ",cas);
            cout<<ans1<<' '<<ans2<<endl;
        }
        return 0;
    }
  • 相关阅读:
    一文说透 Spring 循环依赖问题
    git修改已经push的commit message
    Connection Timeout 和CommandTimeout
    mvc 当中 [ValidateAntiForgeryToken] 的作用及用法
    mvc 当中 [ValidateAntiForgeryToken] 的作用及用法
    asp.net mvc与asp.net core Ajax删除操作delete中带ValidateAntiForgeryToken实例
    VS2017秘钥
    Sql server 2008 R2 配置管理工具服务显示远程过程调用失败:0x800706be
    SQL Server 2008找不到SQL Server配置管理器的问题
    如何为SQL Server2008添加登录账户并配置权限
  • 原文地址:https://www.cnblogs.com/d-e-v-i-l/p/6150301.html
Copyright © 2011-2022 走看看