zoukankan      html  css  js  c++  java
  • 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;
    }
    

      

  • 相关阅读:
    操作mysql的指令
    linux下安装mongodb
    linux将指令加入开机启动或加入环境变量
    php请求远程url内容方法
    nosql基本了解
    堆排序的实现
    转:导出csv文件数字会自动变科学计数法的解决方法
    jQuery筛选结果等于true的筛选
    转:Jquery的parent和parents(找到某一特定的祖先元素)
    drupal7 带表达式条件的update
  • 原文地址:https://www.cnblogs.com/sola1994/p/4480337.html
Copyright © 2011-2022 走看看