NYOJ926(概率)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=926

设最终A获胜的概率为P,则B获胜的概率为1-P;

因此我们只需要考虑A获胜的概率即可;

又由题意可知每一轮中他们做对题目的概率是不变的;

可分两种情况讨论:一是在当前局中A获胜了,用p1表示,则p1=(a%)*(1-b%);

或者当前局为平局,用p2表示其概率,则p2=(a%)*(b%),即A只能在之后的游戏中获胜,当前局轮白了,对之后的胜负没有影响,即A此时的胜率仍然为P;

由此可得:p=p1+p2*p;即p=p1/(1-p2);带入p1,p2可得:p=(100*a-a*b)/(10000-a*b);

 

ac代码:

 1 #include <bits/stdc++.h>
 2 #include <iostream>
 3 #include <queue>
 4 #include <stdio.h>
 5 #include <string.h>
 6 #include <algorithm>
 7 #include <string>
 8 #include <math.h>
 9 #include <set>
10 #include <map>
11 #define mod  1000000007
12 #define MAXN 100000+10
13 #define INF 1000000000
14 #define eps 10e-6
15 #define ll long long
16 using namespace std;
17 
18 bool cmp(int a, int b)
19 {
20     return a > b;
21 }
22 
23 //******************************************************************************
24 
25 int main(void)
26 {
27     std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
28     int t;
29     cin >> t;
30     while(t--)
31     {
32         int a, b;
33         cin >> a >> b;
34         int x=100*a-a*b, y=10000-a*b, gg=__gcd(x, y);
35         cout << x/gg << "/" << y/gg << " " << (y/gg-x/gg) << "/" << y/gg << endl;
36     }
37     return 0;
38 }

 

posted @ 2016-09-30 19:08  geloutingyu  阅读(214)  评论(0编辑  收藏  举报