牛牛和牛可乐的赌约 [逆元]

牛牛和牛可乐的赌约

https://ac.nowcoder.com/acm/contest/7412/A

题意

n面骰子,投m次,若每次均为n则牛牛赢,求牛牛输的概率。(读了半天的赢的概率,wa傻了都)

题解

直接对分母用费马小定理求逆元即可,概率为

code

#include <bits/stdc++.h>
#define reg register
#define ll long long
#define ull unsigned long long
#define pii pair<int,int>
#define inf 0x3f3f3f3f
#define eps 1e-8
#define pi acos(-1.0)
#define e exp(1.0)
#define ios ios::sync_with_stdio(false)
#define rep(i,l,r) for(int i=(l);i<(r);i++)
using namespace std;

const int maxn = 2e5 + 10;
const int mod = 1e9 + 7;

ll qpow(ll x, ll y)
{
   ll res = 1;
   while(y){
      if(y & 1) res = res * x % mod;
      x = x * x % mod;
      y>>=1;
   }
   return res;
}

int main()
{
   ios;
   int t;
   cin>>t;
   while(t--){
      ll n,m;
      cin>>n>>m;
      ll tmp = qpow(n,m);
      printf("%lld\n",(tmp-1) * qpow(tmp,mod-2) %  mod);
   }


   return 0;
}
全部评论

相关推荐

烤点老白薯:他第二句话的潜台词是想让你帮他点个瑞幸或者喜茶啥的
mt对你说过最有启发的一...
点赞 评论 收藏
分享
今天 14:44
复旦大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务