https://nanti.jisuanke.com/t/17115

题意:有一枚不均匀的硬币,正面朝上的概率是q/p。现在抛k次硬币,求其中有偶数次正面朝上的概率为X/Y,现在要求输出X*(Y对于1e9+7的逆元)。

题解:

for(int i=0;i<=k;i+=2){ans+=C(k,i)*(1-q/p)^(k-i)*(q/p)^i;
}

可以看出这是一个牛顿二项式,但是求的是偶数项。

根据牛顿二项式有:

偶数项+奇数项=(a+b)^k=1

偶数项-奇数项=(a-b)^k=(1-2*q/p)^k

所以偶数项=(1+(1-2*q/p)^k)/2

其中要求逆元

代码:

#include<set>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<bitset>#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<ctime>#include<iomanip>
#include<iostream>#define debug cout<<"aaa"<<endl
#define d(a) cout<<a<<endl
#define mem(a,b) memset(a,b,sizeof(a))
#define LL long long
#define lson l,mid,root<<1
#define rson mid+1,r,root<<1|1
#define MIN_INT (-2147483647-1)
#define MAX_INT 2147483647
#define MAX_LL 9223372036854775807i64
#define MIN_LL (-9223372036854775807i64-1)
using namespace std;const int N = 100000 + 5;
const LL mod = 1000000000 + 7;
const double eps = 1e-8;LL exgcd(LL a,LL b,LL &x,LL &y){if(b==0){x=1;y=0;return a;}LL r=exgcd(b,a%b,x,y);LL t=x;x=y;y=t-a/b*y;return r;
} LL quick(LL a,LL b){LL ans=1;a%=mod;while(b){if(b&1)ans=(ans*a)%mod;a=(a*a)%mod;b>>=1;}ans%=mod;return (ans+mod)%mod;
} int main(){int t;LL p,q,k,temp,x,y,ans;scanf("%d",&t);while(t--){scanf("%lld%lld%lld",&p,&q,&k);temp=quick(p,k);exgcd(temp,mod,x,y);ans=(quick(p-2*q,k)*x)%mod;ans=1+ans;exgcd(2,mod,x,y);ans=(ans*x)%mod;ans=(ans+mod)%mod;printf("%lld\n",ans);}return 0;
}

Coin 2017icpc-西安赛区 牛顿二项式相关推荐

  1. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B Coin(逆元,费马小定理)

    Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...

  2. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B Coin (概率计算)

    传送门:  https://nanti.jisuanke.com/t/17115 Bob has a not even coin, every time he tosses the coin, the ...

  3. 计蒜客 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B coin(求乘法逆元)

    Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...

  4. 2017 icpc 西安赛区 B.Coin(推公式+二项式定理)

    Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...

  5. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛

    这个西安赛区大概是我们学校打得最好的一次了,因为数学题多,而且嘛,那个I竟然就是暴力,恭喜我们学校分了个机会 Coin 问答 只看题面 23.46% 1000ms 32768K Bob has a n ...

  6. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 xor (根号分治)

    xor There is a tree with nn nodes. For each node, there is an integer value a_ia​i​​, (1 \le a_i \le ...

  7. 计蒜客 17115 Coin(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B)

    题目链接:Coin 题目大意:有一个特殊的硬币,正面朝上的概率是q/p,现在投掷k次,问出现偶数次正面朝上的概率是多少,需要算逆元 题目思路:我们可以整理得到我们需要算的是C(k,n)∗(qp)k∗( ...

  8. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B coin

    数学能力严重退化,奇数项的和都不会求了.. 代码如下 #include<cstdio> #include<iostream> #include<cstring> # ...

  9. 西安后宰门小学_【棒!少年】 追逐热血,挥洒激情!后宰门小学决战2020 MLB First Pitch青少年棒球联赛西安赛区...

    最近,有一个关于棒球的故事在朋友圈刷屏.故事讲述了一群来自山区的困境少年,通过打棒球"叫板命运".这部纪录片电影<棒!少年>被网友评价为"2020最值得带孩子 ...

  10. 【推导】计蒜客17119 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function

    题意:给你n,m,让你求cos(nx)的展开式的(cos(x))^m项的系数. 更一般的式子是这样的:. 队友的代码: #include<cstdio> #include<algor ...

最新文章

  1. 交情来自一系列的交易
  2. 万引大佬自曝这样被MIT拒掉:“系里不喜欢你”,找校长对峙后悟了
  3. pads pcb导出pdf文件_干货 | 学会设计不规则形状PCB,看这一篇就够了
  4. POJ 3040 贪心
  5. C++ 面向对象(类对象)
  6. 2022年全球及中国酰氯行业投资竞争力与发展状况分析报告
  7. 【thymeleaf】Access to request parameters is forbidden in this context
  8. 10月13日云栖精选夜读:【云栖大会】阿里云和红帽达成合作为百万级客户提供更多企业级解决方案...
  9. java枚举怎么编译不行的_java – 打开枚举时Maven编译失败
  10. “SQL 被低估了!”
  11. LeetCode 3sum 问题
  12. 利用openpyxl来读取Excel数据
  13. 学C++不得不看的一篇文章
  14. v8声卡调音软件_V8声卡调试:软件音效、变声效果及消除电流降噪教程
  15. matlab统计颗粒数,一种基于Matlab的谷物颗粒计数方法
  16. python打印星号组成的三角形_Python利用for循环打印星号三角形的案例
  17. 剑指 Offer 24. 反转链表java
  18. 大数据应用导论 Chapter1 | 大数据技术与应用概述
  19. 00后必看:如何在互联网就业寒冬和疫情的双面夹击下找到心仪工作
  20. Backblaze2022中期SSD故障质量报告解读

热门文章

  1. 元数据管理技术--Atlas
  2. 递归,举几个简单的例子
  3. 软件测试精华总结,入门到精通全流程(必看,知识点很全)
  4. 人工智能研究中心快递柜——代码分析三
  5. 李飞飞:如何教计算机理解图片
  6. 有一张厚度为0.1mm的纸,假设它足够大,重复将其对折,问对折多少次之后,其厚度可达(再对折一次就超过)珠穆朗玛峰的高度?(C语言)
  7. 高仿绚丽彩虹悬浮音乐播放器html5源码
  8. PTA - 数据库合集4
  9. 记录office安装一半重启后无法继续安装
  10. DataX-MySQL(读写)