• 2023年中国大学生程序设计竞赛女生专场题解, K. RSP


    Dashboard - 2023年中国大学生程序设计竞赛女生专场 - Codeforces

                                            K. RSP

    time limit per test1 second

    memory limit per test512 megabytes

    input standard input

    output standard output

    小 A 和小 B 在玩一种叫做石头剪刀布的游戏。

    这个游戏的规则很复杂,每一轮游戏小 A 和小 B 都同时在石头、剪刀、布三种里面选择一种,然后石头可以打败剪刀,剪刀可以打败布,布可以打败石头,相同则为平局。

    他们玩了一会儿之后就发现只有三种选择太无聊了,于是将游戏拓展成了每次从 n 种里选一个,类似的第 1 种可以打败第 2 种,... 第 n - 1 种可以打败第 n 种,第 n 种可以打败第 1 种,没有胜负关系的均为平局。

    因为这个游戏运气成分太强,他们认为只靠一轮定胜负太不公平,于是约定每局游戏玩 m 轮,获胜次数多的获胜。

    同时为了游戏更加有策略性,他们约定不能连续出相同的。

    假设他们都是绝顶聪明的(会做出净胜期望尽可能大的选择),请你算一算这个游戏的获胜概率。

    Input

    输入的第一行包含两个整数 n , m (3 ≤ n ≤ 109, 1 ≤ m ≤ 109),表示每次可以选择的数量和一局游戏的轮数。

    Output

    输出一行 p "/"(不包含")q,表示有 

     的概率获胜,并且为最简分数(p, q 的最大公约数为 1)。

    Examples

    input

    Copy

    3 3
    

    output

    Copy

    1/3
    

    input

    Copy

    4 1
    

    output

    Copy

    1/4

    解析:

     关键:同时为了游戏更加有策略性,他们约定不能连续出相同的。

    第一句游戏一定是靠运气定输赢的,数和赢的概率都是1/n

    之后应为双方都决顶聪明,他们约定不能连续出相同的,所以他们可以选择上一局被对方克制的那个数,因为对方不可能再选能克制这个数得数了,因为上一把已经选过了。

    所以答案就是第一局赢得概率:1/n

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. #include
    7. #include
    8. #include
    9. #include
    10. #include
    11. #include
    12. #include
    13. #include
    14. using namespace std;
    15. int n, m;
    16. int main() {
    17. cin >> n >> m;
    18. cout << 1 << "/" << n << endl;
    19. return 0;
    20. }

  • 相关阅读:
    Spring 基于注解的容器配置有哪些?
    自定义注解+切面,环绕通知打印方法日志
    LINUX网络编程初探(补充中)
    学会这些Jmeter插件,才能设计出复杂性能测试场景
    1068 Find More Coins
    js文字逐个显示
    快速入门ES6语法(ECMAScript 6)
    异步模式之工作线程
    Android -- 每日一问:如何理解 Gradle?Gradle 在 Android 的构建过程中有什么作用?
    JSON——数组语法
  • 原文地址:https://blog.csdn.net/Landing_on_Mars/article/details/134254218