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;
    }
    

      

  • 相关阅读:
    java访问mysql方法数据库
    iOS8:把这些七招APP哭
    String、StringBuffer与StringBuilder差分
    陈词滥调,正确使用memset
    spring Annotation 组分注塑
    类是公共,它应该被命名为.java文件声明
    【UVA】10012
    Android在ListView显示图片(重复混乱闪烁问题)
    oc-15-枚举结构体
    oc-15-self
  • 原文地址:https://www.cnblogs.com/sola1994/p/4480337.html
Copyright © 2011-2022 走看看