zoukankan      html  css  js  c++  java
  • 《动物世界》的剪刀石头布 HDU --- 6418

    题目连接:

    https://vjudge.net/problem/1812686/origin

    emmm 这一题的资料来自《动物世界》这一个李易峰演的电影。。

    主要的思路就是概率,但是会牵扯到博弈论这一个复杂的思路,如果继续深入就会越陷越深。。。

    为什么不需要博弈的根本原因是它的总数的不变的,这个需要考虑到

    A: a1, b1, c1

    B: a2, b2, c2

    (其中a, b, c分别对应剪刀,石头,布)

    现在要B赢,并且题目提到了B知道A中手牌

    所以 A要赢的最佳可能是(a'*(c-b)+b'*(a-c)+c'*(b-a)) / (a+b+c).

    然后对这个进行模拟运算,这里涉及到一个求最大公约数的函数gcd(), 然后变号等情况考虑一下

    AC代码为:

    #include <iostream>
    #include <cstdio>
    #define ll long long
    
    using namespace std;
    
    ll gcd(ll a, ll b)
    {
        return a%b==0?b:gcd(b, a%b);
    }
    
    int main()
    {
        int T;
        scanf("%d", &T);
        while(T--)
        {
            ll ans = 0;
            bool flag = false;
            ll a1, b1, c1;
            ll a2, b2, c2;
            scanf("%lld%lld%lld", &a1, &b1, &c1);
            scanf("%lld%lld%lld", &a2, &b2, &c2);
            ll fmu = a1+b1+c1;
            ll fzi = a2*(c1-b1)+b2*(a1-c1)+c2*(b1-a1);
            if(fmu == 1)
            {
                printf("%lld
    ", fzi);
                continue;
            }
            if(fzi < 0)
            {
                fzi = -fzi;
                flag = true;
            }
            if(fzi == 0)
            {
                printf("0
    ");
                continue;
            }
            if(fzi%fmu == 0)
            {
                ans = fzi/fmu;
                if(flag) printf("-%lld
    ", ans);
                else printf("%lld
    ", ans);
            }
            else
            {
                ll mxyin = gcd(fmu, fzi);
                fmu /= mxyin; fzi /= mxyin;
                if(flag) printf("-%lld/%lld
    ", fzi, fmu);
                else printf("%lld/%lld
    ", fzi, fmu);
            }
        }
        return 0;
    }
    View Code
    化繁为简 大巧不工
  • 相关阅读:
    vue中handsontable 使用
    vue项目在APP禁止页面缩放
    SuperAgent使用文档
    echart 图表自定义样式
    vue router-link子级返回父级页面
    浏览器的多线程
    gzip压缩
    清除浮动的方法
    vue-router的hash和history模式的区别
    Docker镜像+nginx 部署 vue 项目
  • 原文地址:https://www.cnblogs.com/mpeter/p/10288453.html
Copyright © 2011-2022 走看看