Bob has a not even coin, every time he tosses the coin, the probability that the coin’s front face up is
qp
(
qp
≤12
)
The question is, when Bob tosses the coin kk times, what’s the probability that the frequency of the coin facing up is even number.
If the answer is XY , because the answer could be extremely large, you only need to print (X∗Y−1)mod(109+7).
Input Format
First line an integer T, indicates the number of test cases ( T≤100 ).
Then Each line has 3 integer p,q,k( 1≤p,q,k≤107 ) indicates the i-th test case.
Output Format
For each test case, print an integer in a single line indicates the answer.
样例输入
2
2 1 1
3 1 2
样例输出
500000004
555555560
思路:一个高中的组合数学题。。。。。
#include<bits/stdc++.h>
using namespace std;
const int MOD=1e9+7;
long long POW(long long x,long long n)
{
long long res=1;
while(n)
{
if(n&1)res=(res*x)%MOD;
x=(x*x)%MOD;
n/=2;
}
return res;
}
int main()
{
int T;cin>>T;
while(T--)
{
long long p,q,k;
scanf("%lld%lld%lld",&p,&q,&k);
long long x=POW(p-2*q,k);
long long y=POW(p,k);
cout<<( ((1+x*POW(y,MOD-2))%MOD) * POW(2,MOD-2) )%MOD<<endl;
}
return 0;
}