• [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;
    }
    
  • 相关阅读:
    事务的基本特性和隔离级别
    mysql锁的类型
    索引设计的原则
    mysql聚簇索引和非聚簇索引的区别
    spring事务什么时候会失效?
    spring事务传播机制
    GAN的Pytorch实现
    DCGAN的Pytorch实现
    PyTorch学习教程、手册
    去噪论文合集Paper
  • 原文地址:https://www.cnblogs.com/mollnn/p/14558611.html
Copyright © 2020-2023  润新知