zoukankan      html  css  js  c++  java
  • [CF1426E] Rock, Paper, Scissors

    [CF1426E] Rock, Paper, Scissors

    Description

    Alice和Bob进行剪刀石头布的游戏,总共进行(n)局。

    Alice出石头(a_1)次,出剪刀(a_2)次,出布(a_3)次。

    Bob出石头(b_1)次,出剪刀(b_2)次,出布(b_3)次。

    问Alice最少赢多少次,最多赢多少次。

    Solution

    A 最多赢多少次?

    A 出石头 (A_1) 对应 B 出剪刀 (B_2) 才能赢,最多 (min(a_1,b_2))

    这时候三者是相互独立的,于是最多赢得次数为 (sum min (a_i,b_{i+1}))

    A 最少赢多少次?

    A 出石头 (A_1) 对应 B 不出剪刀 (B_2) 才能不赢,最多 (min(a_1,n-b_2))

    这时三者不是相互独立的

    引理:不会出现 (A_1) 也赢,(A_2) 也赢的情况,否则一定可以通过交换来减小胜利场数

    (a_1-b_1-b_3 >0, a_1+a_2-b_1-b_3-b_2>0),与题意矛盾

    那么 (a_i-b_i-b_{i-1}) 中的最大值就是答案

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    int n, a[3], b[3];
    
    signed main()
    {
        ios::sync_with_stdio(false);
        cin >> n;
        for (int i = 0; i < 3; i++)
            cin >> a[i];
        for (int i = 0; i < 3; i++)
            cin >> b[i];
        cout << max(max(0ll, a[0] - b[0] - b[2]), max(a[1] - b[1] - b[0], a[2] - b[2] - b[1])) << " " << min(a[0], b[1]) + min(a[1], b[2]) + min(a[2], b[0]) << endl;
    }
    
  • 相关阅读:
    poj--2031--Building a Space Station(prime)
    nyoj--364--田忌赛马(贪心)
    nyoj--496--巡回赛(拓扑排序)
    nyoj--1100--WAJUEJI which home strong!(bfs)
    hdoj--5625--Clarke and chemistry(枚举)
    poj--1753--Flip Game(dfs好题)
    poj--1101--The Game(bfs)
    冒泡排序
    php常见错误
    php乱码
  • 原文地址:https://www.cnblogs.com/mollnn/p/14558611.html
Copyright © 2011-2022 走看看