• 1417 天堂里的游戏


    思路:看了很久才知道题意,虽然51nod分类为博弈,但我感觉还是不像。解法已经隐藏在样例中了,无论正还是反,最后的期望都是一样的。设美女正面的概率为p,反面为(1-p)则

    p*A-(1-p)*(A+B)/2 = (1-p)*B-p*(A+B)/2,解得:P=(A+3*B)/(4A+4B),最后取下gcd求最简即可。

     1 #include <iostream>
     2 #include <queue>
     3 #include <stack>
     4 #include <cstdio>
     5 #include <vector>
     6 #include <map>
     7 #include <set>
     8 #include <bitset>
     9 #include <algorithm>
    10 #include <cmath>
    11 #include <cstring>
    12 #include <cstdlib>
    13 #include <string>
    14 #include <sstream>
    15 #include <time.h>
    16 #define x first
    17 #define y second
    18 #define pb push_back
    19 #define mp make_pair
    20 #define lson l,m,rt*2
    21 #define rson m+1,r,rt*2+1
    22 #define mt(A,B) memset(A,B,sizeof(A))
    23 #define mod 1000000007
    24 using namespace std;
    25 typedef long long LL;
    26 const double PI = acos(-1);
    27 const int N=2e5+10;
    28 const int inf = 0x3f3f3f3f;
    29 const LL INF=0x3f3f3f3f3f3f3f3fLL;
    30 LL gcd(LL a,LL b)
    31 {
    32     return b==0?a:gcd(b,a%b);
    33 }
    34 int main()
    35 {
    36 #ifdef Local
    37     freopen("data.txt","r",stdin);
    38 #endif
    39     int T;
    40     LL a,b;
    41     cin>>T;
    42     while(T--)
    43     {
    44         cin>>a>>b;
    45         LL p=a+3*b;
    46         LL q=4*(a+b);
    47         LL k=gcd(p,q);
    48         cout<<p/k<<"/"<<q/k<<endl;
    49     }
    50 #ifdef Local
    51     cerr << "time: " << (LL) clock() * 1000 / CLOCKS_PER_SEC << " ms" << endl;
    52 #endif
    53 }
    View Code
  • 相关阅读:
    Vue Bug
    Vue.js(一)
    Node.js简介
    对请求链接的URLEncode处理
    淘宝开放平台
    Java基础(一)
    计算机基础知识
    Unity中对象池的使用
    希尔排序算法
    插入排序算法
  • 原文地址:https://www.cnblogs.com/27sx/p/6267505.html
Copyright © 2020-2023  润新知