• XTU-OJ 1248-Alice and Bob


    Alice和Bob在玩骰子游戏,他们用三颗六面的骰子,游戏规则如下:

    1. 点数的优先级是1点最大,其次是6,5,4,3,2。
    2. 三个骰子点数相同,称为"豹子",豹子之间按点数优先级比较大小。
    3. 如果只有两个骰子点数相同,称为"对子",对子之间按点数优先级比较大小。
    4. 其他情况称为"点子",点子按点数和比较大小。
    5. 豹子比对子、点子大,对子比点子大,如果对子的点数优先级相同,就看剩余那个骰子的点数优先级。

    现在给你Alice和Bob投掷骰子的情况,判断一下胜负情况。

    输入

    第一行输入一个整数K,表示游戏的次数。 以后每两行表示一个样例,第一行是Alice骰子的点数。第二行是Bob骰子的点数。

    输出

    如果是Alice赢,输出"Alice",如果是Bob赢,输出"Bob",否则输出"Draw"。

    样例输入

    3
    1 1 1
    6 6 6
    2 1 2
    4 5 4
    4 5 6
    6 5 4
    

    样例输出

    Alice
    Bob
    Draw

    解题思路: 这就是个比大小问题,但是这里有“两套规则”,一: 如果有豹子或者对子时,1是最大的;二:如果只有单点数的话,比较的是 三个骰子数之和 ,这时 1又是最小的了。 

    这里我们优先设置 1 是最大的,把它改成7。然后我们把所有情况都转换成 赋值运算。豹子最大,赋值100,对子其次,赋值10,最后单个点数赋值1。(参考代码)

    最后比较 Alice 和 Bob 两个 谁的骰子赋值更高

    AC代码:

    1. #include
    2. #include
    3. int ansA, ansB;
    4. int diceA[5], diceB[5];
    5. void compere(int* dice,int &ans)
    6. {
    7. if (dice[0] == dice[1] && dice[1] == dice[2])
    8. ans = dice[0]*100;
    9. else if (dice[0] == dice[1])
    10. ans = dice[0]*10 + dice[2];
    11. else if (dice[1] == dice[2])
    12. ans = dice[1]*10 + dice[0];
    13. else if (dice[0] == dice[2])
    14. ans = dice[0]*10 + dice[1];
    15. else
    16. ans = (dice[0]-1)%6 + (dice[1]-1)%6 + (dice[2]-1)%6;
    17. }
    18. int main()
    19. {
    20. int K;
    21. scanf("%d",&K);
    22. while ( K --)
    23. {
    24. for (int i = 0; i < 3; i ++){
    25. scanf("%d",&diceA[i]);
    26. if (diceA[i] == 1) diceA[i] = 7;
    27. }
    28. for (int i = 0; i < 3; i ++){
    29. scanf("%d",&diceB[i]);
    30. if (diceB[i] == 1) diceB[i] = 7;
    31. }
    32. compere(diceA,ansA);
    33. compere(diceB,ansB);
    34. if (ansA > ansB) puts("Alice");
    35. else if (ansA < ansB) puts("Bob");
    36. else puts("Draw");
    37. }
    38. return 0;
    39. }

  • 相关阅读:
    智慧国土解决方案-最新全套文件
    python diffusers StableDiffusionXLPipeline 离线使用
    正则表达式学习(超详细)
    python和pycharm的安装教程--保姆级
    Java基本语法2
    Kubeadm 部署 k8s 集群
    异地远程访问内网BUG管理系统【Cpolar内网穿透】
    SpringCLoud——Nacos注册中心
    linux的磁盘分区与管理
    .Net依赖注入神器Scrutor(上)
  • 原文地址:https://blog.csdn.net/Jay_is_Chou/article/details/134086941