首页 > 代码库 > NYOJ926(概率)
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 100000000712 #define MAXN 100000+1013 #define INF 100000000014 #define eps 10e-615 #define ll long long16 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 }
NYOJ926(概率)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。