NC26256. 石头剪刀布
描述
输入描述
第一行输入三个正整数 n,a,b,表示格子个数,小阳石头剪刀布赢的概率和平的概率。(概率已对 取模)
输出描述
共一行,输出答案。
示例1
输入:
50 200000002 400000003
输出:
630223353
C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 400K, 提交时间: 2020-02-26 18:21:33
#include<bits/stdc++.h> using namespace std; long long n,a,b,mod=1e9+7; long long fastpow(long long a,long long b) { long long s=1; for(;b;b>>=1,a=a*a%mod)if(b&1)s=s*a%mod; return s; } int main() { long long i,j,t,ans; scanf("%lld%lld%lld",&n,&a,&b); ans=j=t=fastpow(a,mod-2); for(i=2;i<n;i++) { j=(1+(1-a-b+2*mod)%mod*j%mod)*t%mod; ans=(ans+j)%mod; } printf("%lld\n",ans); return 0; }