Problem

nanti.jisuanke.com/t/17115

Reference

关于二项展开式系数和
【二项式定理】【推导】计蒜客17115 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B. Coin

Meaning

抛一个硬币正面朝上的概率是 qp\frac{q}{p}(qp≤12\frac{q}{p}\leq \frac{1}{2}),连抛 k 次,求正面朝上的次数是偶数的概率

Analysis

即是求:

∑0≤i≤k,i是偶数Cik(qp)i(1−qp)k−i

\sum_{0\leq i\leq k,i 是偶数}C_{k}^{i}(\frac{q}{p})^{i}(1-\frac{q}{p})^{k-i}
通分,提出 1pk\frac{1}{p^{k}},得:

1pk∑iqi(p−q)k−i

\frac{1}{p^{k}}\sum_{i} q^{i}(p-q)^{k-i}
其中的求和部分,即是求 [q+(p−q)]k[q+(p-q)]^{k} 展开式中偶数项的系数和。
求 (a+b)k(a+b)^{k} 的偶数项和可以:
1. 直接通过 (a+b)k+(−a+b)k2\frac{(a+b)^{k}+(-a+b)^{k}}{2} 来求;
2. 也可以用 (a+b)k±(a−b)k2\frac{(a+b)^{k}\pm (a-b)^{k}}{2} 来求

  • (a+b)k(a+b)^{k} 的通项是 Cikaibk−iC^{i}_{k}a^{i}b^{k-i}
  • (a−b)k(a-b)^{k} 的通项是 Cikai(−b)k−i=(−1)k−iCikaibk−iC^{i}_{k}a^{i}(-b)^{k-i}=(-1)^{k-i}C^{i}_{k}a^{i}b^{k-i}
  • 要消去奇数项,就要使得前者 i 为奇数时,后者 k - i 也是奇数
  • 所以当 k 是奇数时,两者相减;而 k 是偶数时,两者相加

Code

#include <cstdio>
using namespace std;
const int MOD = 1000000007;int fp(long long a, int b)
{int r = 1;for( ; b; b >>= 1, a = a * a % MOD)if(b & 1)r = r * a % MOD;return r;
}int main()
{int T;scanf("%d", &T);while(T--){int p, q, k;scanf("%d%d%d", &p, &q, &k);int a = fp(p, k), // [q + (p - q)] ^ kb = fp(p - q - q, k); // [-q + (p - q)] ^ kint ans = (a + b) % MOD;// ans / 2ans = (long long)ans * fp(2LL, MOD - 2) % MOD;// ans / p^kans = (long long)ans * fp(fp(p, k), MOD - 2) % MOD;printf("%d\n", ans);}return 0;
}

用第二种的:

/*… 前面相同 …*/int a = fp(p, k), // [q + (p - q)] ^ k// q + q - p <= 0,所以要 + MODb = fp(q + q - p + MOD, k), // [q - (p - q)] ^ kans;if(k & 1)ans = (a - b + MOD) % MOD;
elseans = (a + b) % MOD;
// ans / 2
ans = (long long)ans * fp(2LL, MOD - 2) % MOD;
// ans / p^k
ans = (long long)ans * fp(fp(p, k), MOD - 2) % MOD;/*… 后面相同 …*/

计蒜客 17115 2017 ICPC 西安网络赛 B Coin相关推荐

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

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

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

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

  3. 2017 ICPC西安区域赛 A - XOR (线段树并线性基)

    链接:https://nanti.jisuanke.com/t/A1607 题面: Consider an array AA with n elements . Each of its element ...

  4. 2017 ICPC西安区域赛 A - XOR ,线段树合并线性基

    题目链接:A - XOR 题意;给个数组,每次询问一个区间你可以挑任意个数的数字异或和 然后在或上k的最大值 题解:线性基不知道的先看这个,一个线性基可以log的求最大值把对应去区间的线性基求出来然后 ...

  5. 2020 计蒜客蓝桥杯B 组模拟赛(三)——突破障碍

    小明有一个n*m的二维迷宫,在样例中给出.其中'#'表示障碍物, 'S'表示起点,'T'表示终点,'.'表示空地.保证起点和终点都是空地.每次移动可以从当前所在空地移动到相邻的空地,只能往上下左右四个 ...

  6. 计蒜客2018蓝桥A组模拟赛(一)青出于蓝胜于蓝(dfs序+线段树)

    题目: 武当派一共有 n 人,门派内 n 人按照武功高低进行排名,武功最高的人排名第 1,次高的人排名第 2,- 武功最低的人排名第 n.现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个 ...

  7. 计蒜客 ACM竞赛高校联盟训练赛 第8场 煎牛排

    水一水. https://nanti.jisuanke.com/t/24205 煎牛排 题目描述 又是一个难得的周六,是时候远离食堂和外卖出去大吃一顿了.圈内知名吃货AA正想着中午去吃汉堡炸鸡烤肉火锅 ...

  8. 计蒜客网站 ACM-ICPC亚洲区赛题

    The Preliminary Contest for ICPC China Nanchang National Invitational(2019) ACM-ICPC Jiaozuo Onsite ...

  9. 计蒜客第二章:网络交友

    计蒜客练习题:网络交友 题目 样例 代码 #include<iostream> #include<map> using namespace std; map<string ...

最新文章

  1. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY5-神经网络
  2. cmd与monkey测试
  3. mongodb数据库扩展名_MongoDB学习笔记:MongoDB 数据库的命名、设计规范
  4. 学计算机科学与技术的专业特长,计算机科学与技术专业简历范文介绍
  5. XP屏幕上下翻转的现象及解决
  6. 如何在SAP云平台ABAP编程环境里创建自己的Z表
  7. Corn Fields 玉米田
  8. linux 前端环境搭建
  9. 我与布拉德利(Todd Bradley)聊天
  10. LAMP架构调优(九)——Apache Rewrite功能实战
  11. Linux内核入门(四)—— 内核汇编语言规则
  12. 双向晶闸管,调压电路,开关电路,楼梯灯电路,光控路灯,无电弧接触器电路
  13. java上传图片至阿里云oss服务器
  14. 计算机怎么配置IP地址,如何设置电脑IP地址?
  15. PCB多层板层的设置原则
  16. 国仁猫哥:视频号超详细运营攻略教程;教你如何打造一个优质的视频号【建议收藏】
  17. JavaScript 专题(九)数组中查找指定元素
  18. buuctf——Warmup
  19. 贝叶斯网专题4:概率推理中的变量消元方法
  20. kestrel服务器性能,深入理解kestrel的应用

热门文章

  1. PHP学习----换行符
  2. NVM安装nodejs的方法
  3. Resharper快捷键使用
  4. resnet50结构图
  5. linux 内核链表
  6. ERP现状及未来发展趋势分析?
  7. 表单验证-----验证图片格式
  8. DoNet开源项目-基于jQuery EasyUI的后台管理系统
  9. LOJ#6089 小 Y 的背包计数问题 - DP精题
  10. RadioButton设置默认选中后无法取消,可选中多个的问题