• csu 1577 Dice Game (博弈)


    题意:有两个人 每个人可以撒两个骰子 给出每个骰子的最大和最小值

            谁撒出的数值和大谁获胜 

    思路: 把两个人可能的值区间算出 因为是均匀分布

            所以两人重叠的区间胜率相同 那么 只需计算谁获胜的区间大即可得出结果

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<stdlib.h>
    #include<algorithm>
    using namespace std;
    int dir4[][2]={{0,1},{1,0},{0,-1},{-1,0}};
    int dir8[][2]={{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};
    int main()
    {
        int a1,b1,a2,b2,A1,B1,A2,B2;
        while(scanf("%d%d%d%d%d%d%d%d",&a1,&b1,&a2,&b2,&A1,&B1,&A2,&B2)!=EOF)
        {
            int minn1=a1+a2,maxn1=b1+b2,minn2=A1+A2,maxn2=B1+B2;
            //printf("%d %d %d %d",minn1,maxn1,minn2,maxn2);
            if(maxn2<=minn1 || maxn1<=minn2)
            {
                //printf("1...
    ");
                if(maxn2<=minn1) printf("Gunnar
    ");
                else printf("Emma
    ");
            }
            else if(minn1==minn2 && maxn1==maxn2)
            {
               // printf("2...
    ");
                printf("Tie
    ");
                //continue;
            }
            else if((minn2<=maxn1&&minn2>=minn1&&maxn2>=maxn1) || (minn1<=maxn2&&minn2<=minn1&&maxn1>=maxn2))
            {
                //printf("3...
    ");
                if(minn2<=maxn1&&minn2>=minn1&&maxn2>=maxn1) printf("Emma
    ");
                else printf("Gunnar
    ");
            }
            else if((minn1>=minn2&&maxn2>=maxn1) || (minn2>=minn1&&maxn2<=maxn1))
            {
                //printf("%d %d %d %d",minn1,maxn1,minn2,maxn2);
                if(minn1>=minn2&&maxn2>=maxn1)
                {
                    int len1=minn1-minn2;
                    int len2=maxn2-maxn1;
                    if(len2>len1) printf("Emma
    ");
                    else if(len1==len2) printf("Tie
    ");
                    else printf("Gunnar
    ");
                }
                else
                {
                    int len1=minn2-minn1;
                    int len2=maxn1-maxn2;
                    if(len2>len1) printf("Gunnar
    ");
                    else if(len1==len2) printf("Tie
    ");
                    else printf("Emma
    ");
                }
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    python中的 upper() 、lower()、capitalize()、title()方法
    python中的strip()函数的用法
    python中的split()函数的用法
    python中的join()函数的用法
    appium 简单的测试例子(1)
    模拟器连接使用
    appuim连接时的一些出现的错误
    android获取包名的几种方法
    python+Appium(1)
    专注基础软件自研,巨杉入选“2020信创产业独角兽100强”
  • 原文地址:https://www.cnblogs.com/sola1994/p/4480337.html
Copyright © 2020-2023  润新知