《动物世界》的剪刀石头布 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\n", fzi);
            continue;
        }
        if(fzi < 0)
        {
            fzi = -fzi;
            flag = true;
        }
        if(fzi == 0)
        {
            printf("0\n");
            continue;
        }
        if(fzi%fmu == 0)
        {
            ans = fzi/fmu;
            if(flag) printf("-%lld\n", ans);
            else printf("%lld\n", ans);
        }
        else
        {
            ll mxyin = gcd(fmu, fzi);
            fmu /= mxyin; fzi /= mxyin;
            if(flag) printf("-%lld/%lld\n", fzi, fmu);
            else printf("%lld/%lld\n", fzi, fmu);
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/mpeter/p/10288453.html

时间: 2024-11-07 13:38:14

《动物世界》的剪刀石头布 HDU --- 6418的相关文章

动物世界游戏!!

前两天跟朋友说起以前玩的DUBO的"动物世界"的游戏,下载了一个android的,觉得不太爽,干脆按照以前玩的感觉自己做了一个,这个版本没有用canvas,主要用css3 的transform 属性,在手机端效率太差劲了,还望高人指点效率迷津. 说明: 1.45秒压点倒计时 2.10秒中奖反馈倒计时 3.随机中奖,先到先得 4.可以用node扩展为多人在线版本 5.效率有待优化 贴上图片: 贴上代码: <!DOCTYPE HTML> <html> <hea

动物世界

1.实现Mammal类的方法 2.由Mammal类派生出Dog类,在Dog类中增加itsColor成员(COLOR类型) 3.Dog类中增加以下方法: constructors: Dog().Dog(int age).Dog(int age, int weight).Dog(int age, COLOR color). Dog(int age, int weight, COLOR color).~Dog() accessors: GetColor().SetColor() Other metho

游戏中常见动物的象征意义

沙盘中动物的象征意义,可以触及来访者无意识中的人格内涵.沙盘中出现的动物,既可能是来访者本身所崇尚欣赏品质的具体化,也可能是自己恐惧担忧的象征. 考察的沙盘作品中动物的象征意义,可以触及来访者无意识中的人格内涵.盘中出现的动物,既可能是来访者本身所崇尚欣赏品质的具体化,也可能是自己恐惧担忧的象征. (一)十二生肖的象征意义 1.鼠:嗅觉灵敏,胆小多疑,警惕性高,加上它的身体十分灵巧,它的机灵和性能通灵方面,使得民间认为鼠性通灵,能预知吉凶灾祸.鼠的繁殖力强,成活率高,也是生命力强的象征. 2.牛

健康,home? [java的内存浅析]

健康,home? [java的内存浅析] 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 乐观上上,how can other kno u,u r yourself!I must be strong and carry on. -泥沙砖瓦浆木匠 一.闲谈下 201407月记着那时候身体垮了下来,呵呵.想说,对自己的说,也是对大家的负责吧.那时候胸疼胸闷,然后几乎累垮了,我还坚持了一星期,那一星期真的迷迷糊糊.完全不能

程序员到项目经理:从内而外的提升

转自:http://www.cnblogs.com/watsonyin/archive/2012/09/10/2679528.html 目录 从程序员到项目经理(一):为什么要当项目经理 从程序员到项目经理(二):升职之辨 从程序员到项目经理(三):认识项目经理 从程序员到项目经理(四):外行可以领导内行吗 从程序员到项目经理(五):程序员加油站,不是人人都懂的学习要点 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑 从程序员到项目经理(七):程序员加油站 — 完美主义也是一种错

不是笑话的笑话-《迁徙猿漫漫归家路》

很真实的的程序员啊. http://v.youku.com/v_show/id_XODcyNzIzMjQw.html 这个是从中间开始播放的.模仿<动物世界>的语气播放. 都是心酸啊,说多了都是泪.

[设计模式] javascript 之 抽象工厂模式

抽象工厂模式说明 1. 工厂方法模式的问题: 在工厂方法模式里,创建类都需要通过 工厂类,如果要扩展程序,就必须修改工厂类,这违背了闭包原则,对扩展开放,对修改关闭:对于设计有一定的问题. 2. 如何解决:就要用到抽象工厂模式,就是对功能类单独创建工厂类,这样就不必修改之前的代码,又扩展了功能. 3. 工厂模式其实就是对 实现同一接口的 实现类 的 统一 工厂方式创建调用,但 javascript 没有接口这号东西,所以就去掉这一层 实现,但位功能类的成员及方法都应当一样; 抽象工厂源码例子 1

网络遥控器数据统计0526

一.统计脚本及代码 1 #!/bin/sh 2 3 root_dir=`pwd` 4 source_file="$root_dir"/operate0526.txt 5 single_file="$root_dir"/single0526.txt 6 result_file="$root_dir"/result.txt 7 8 rm -rf $single_file 9 rm -rf $result_file 10 11 ###统计出现次数最多的

php工厂设计模式

class DbFactory { private $errmsg = '未找到类文件'; static function factory($className){ $className = strtoupper(substr($className,0,1)).substr($className, 1); if(include_once($className.'.php')){ return new $className; } else{ throw new Exception($this->e