[HNOI2017]抛硬币】的更多相关文章

4830: [Hnoi2017]抛硬币 题意:A投a次硬币,B投b次硬币,a比b正面朝上次数多的方案数,模\(10^k\). \(b \le a \le b+10000 \le 10^{15}, k \le 9\) 几乎一下午和一晚上杠这道题...中间各种翻<具体数学>各种卡常 有两种做法,这里只说我认为简单的一种. 题目就是要求 \[ \sum_{i=0}^a \sum_{j=0}^b [i>j] \binom{a}{i} \binom{b}{j} \] 化一化得到 \[ \sum_{…
[BZOJ4830][HNOI2017]抛硬币(组合计数,拓展卢卡斯定理) 题面 BZOJ 洛谷 题解 暴力是啥? 枚举\(A\)的次数和\(B\)的次数,然后直接组合数算就好了:\(\displaystyle \sum_{i=0}^a{a\choose i}\sum_{j=0}^{i-1}{b\choose j}\). 完美\(TLE\). 先考虑特殊点的情况,如果\(a=b\),那么显然两者输赢的情况反过来是一一对应的,所以答案就是总情况减去平局的情况除二,而总方法就是\(\displays…
Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于**师手游,天天刷本,根本无心搞学习.但是 已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A为了劝说小B早日脱坑,认真学习,决 定以抛硬币的形式让小B明白他是一个彻彻底底的非洲人,从而对这个游戏绝望.两个人同时抛b次硬币,如果小A 的正面朝上的次数大于小B正面朝上的次数,则小A获胜.但事实上,小A也曾经沉迷过拉拉游戏,而且他一次UR也 没有抽到过,所以他对于自己的运气也没有太大把握.所以他…
题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生.勤勉的小 A 为了劝说小 B 早日脱坑,认真学习,决定以抛硬币的形式让小 B 明白他是一个彻彻底底的非洲人,从而对这个游戏绝望.两个人同时抛 b 次硬币,如果小 A 的正面朝上的次数大于小 B 正面朝上的次数,则小 A 获胜. 但事实上,小 A 也曾经沉迷过拉拉游戏,而且他一次 UR 也没有抽到过,所以他对于自…
题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生.勤勉的小 A 为了劝说小 B 早日脱坑,认真学习,决定以抛硬币的形式让小 B 明白他是一个彻彻底底的非洲人,从而对这个游戏绝望.两个人同时抛 b 次硬币,如果小 A 的正面朝上的次数大于小 B 正面朝上的次数,则小 A 获胜. 但事实上,小 A 也曾经沉迷过拉拉游戏,而且他一次 UR 也没有抽到过,所以他对于自…
传送门 我是真的弱,看题解都写了半天,,, 这题答案应该是\(\sum_{i=1}^{a}\binom{a}{i}\sum_{j=0}^{min(b,i-1)}\binom{b}{j}\) 上面那个式子无法化简qwq 把A和b的抛硬币情况连在一起,记成一个01串,那么如果某个串代表B获胜,那么这个串的反串就能代表A获胜 如果\(a=b\),那么答案还要减去平局情况,即\[\frac{2^{a+b}-\binom{a+b}{a}}{2}\] 如果\(a>b\),那么有种特殊情况是代表A获胜的某个串…
Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A为了劝说小B早日脱坑,认真学习,决定以抛硬币的形式让小B明白他是一个彻彻底底的非洲人,从而对这个游戏绝望.两个人同时抛b次硬币,如果小A的正面朝上的次数大于小B正面朝上的次数,则小A获胜.但事实上,小A也曾经沉迷过拉拉游戏,而且他一次UR也没有抽到过,所以他对于自己的运气也没有太大把握.所以他决定在小…
Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于××师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A为了劝说小B早日脱坑,认真学习,决定以抛硬币的形式让小B明白他是一个彻彻底底的非洲人,从而对这个游戏绝望.两个人同时抛b次硬币,如果小A的正面朝上的次数大于小B正面朝上的次数,则小A获胜.但事实上,小A也曾经沉迷过拉拉游戏,而且他一次UR也没有抽到过,所以他对于自己的运气也没有太大把握.所以他决定在小…
传送门 数学真的太优秀了Orz 数据真的太优秀了Orz 题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生.勤勉的小 A 为了劝说小 B 早日脱坑,认真学习,决定以抛硬币的形式让小 B 明白他是一个彻彻底底的非洲人,从而对这个游戏绝望.两个人同时抛 b 次硬币,如果小 A 的正面朝上的次数大于小 B 正面朝上的次数,则小 A 获胜. 但事实上,小 A 也曾经沉迷…
推式子+exlucas. 题意: 小 A 和小 B 是一对好朋友,两个人同时抛 b 次硬币,如果小 A 的正面朝上的次数大于小 B 正面朝上的次数,则小 A 获胜. 小 A 决定在小 B 没注意的时候作弊,悄悄地多抛几次硬币,当然,为了不让小 B 怀疑,他不会抛太多次. 现在小 A 想问你,在多少种可能的情况下,他能够胜过小 B 呢?由于答案可能太大,所以你只需要输出答案在十进制表示下的最后 k 位即可. 有多组数据,对于每组数据输入三个数a,b,k,分别代表小A抛硬币的次数,小B抛硬币的次数,…
传送门 这个题的暴力比较好想--然后用一些组合的知识就可以变成正解了. 首先我们考虑a=b的情况.我们把扔出来的硬币看成是一个01序列,那么对于一个b获胜的序列,他在每一位都按位异或1之后必然是一个a获胜的序列,那么a获胜的情况就是总情况减去平局,再除以二.总情况显然是\(2^{a+b}\),平局的我们能想到是\(\sum_{i=0}^a (C_a^i)^2\),这个怎么快速计算--?一会会说到. 之后考虑a > b的情况.现在任何一个a平局或者告负的局面,只要按位异或1之后都会转化为a胜的局面…
Problem loj2023 题意概述:甲抛掷 \(a\) 次硬币,乙抛掷 \(b\) 次硬币,问有多少种情况甲正面向上的次数比乙多,答案对 \(10^k\) 取模 对于 \(10\%\) 的数据,\(a,b\le 20\): 对于 \(30\%\) 的数据,\(a,b\le 100\): 对于 \(70\%\) 的数据,\(a,b\le 100000\),其中有 \(20\%\) 的数据满足 \(a=b\): 对于 \(100\%\) 的数据,\(1\le a,b\le {10}^{15},…
除了队长快跑外最难的题吧. 除了需要写\(exLucas\)之外,还教会了我大量的卡常技巧. 首先\(70\)分就是个直接按题意模拟,易得\(ans=\sum_{j=0}^{b} C_{b}^{j}\sum_{i=j+1}^{a}C_{a}^{i}\),把后面的求和用后缀和优化一下,外加\(exLucas\)和大力卡常应该可以拿到这档分. 考虑满分做法,首先对于\(a=b\)的,显然每一种胜利局面取反后一定是一种失败局面,当然还有平局. 我们考虑用总情况减去平局除以二. 如何计算平局,显然有\(…
题目链接 BZOJ4830 题解 当\(a = b\)时,我们把他们投掷硬币的结果表示成二进制,发现,当\(A\)输给\(B\)时,将二进制反转一下\(A\)就赢了\(B\) 还要除去平局的情况,最后答案就是 \[\frac{2^{a + b} - {a + b \choose a}}{2}\] 当\(a \neq b\)时,有些状态可能翻转后还是\(A\)赢\(B\),需要加上这部分 \[ \begin{aligned} \sum\limits_{i = 0}^{b} \sum\limits_…
题面 传送门 题解 果然--扩展\(Lucas\)学了跟没学一样-- 我们先考虑\(a=b\)的情况,这种情况下每一个\(A\)胜的方案中\(A\)和\(B\)的所有位上一起取反一定是一个\(A\)败的方案,而平局的方案取反之后仍然是一个平局的方案.那么我们可以用总的方案数\(2^{a+b}\)减去平局的次数除以\(2\)就行了.平局的次数我们可以考虑枚举两边扔了多少次正面,那么答案就是 \[ans=\sum_{i=0}^n {n\choose i}^2={2n\choose n}\] 可以这么…
可以分别枚举两人正面朝上的次数来统计答案,所求即为 \[\sum_{i=0}^{a}\sum_{j=0}^{b} \binom{a}{i} \binom{b}{j} [i>j] \] 将\(i\)替换为\(i+j\)来保证\(i>j\) \[ \begin{aligned} &\sum_{i=0}^{a}\sum_{j=0}^{b} \binom{a}{i} \binom{b}{j} [i>j] \\ =&\sum_{i=1}^{a}\sum_{j=0}^{a-i} \b…
#2023. 「AHOI / HNOI2017」抛硬币   题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生. 勤勉的小 A 为了劝说小 B 早日脱坑,认真学习,决定以抛硬币的形式让小 B 明白他是一个彻彻底底的非洲人,从而对这个游戏绝望.两个人同时抛 bbb 次硬币,如果小 A 的正面朝上的次数大于小 B 正面朝上的次数,则小 A 获胜. 但事实上,小 A…
实现代码: #include<stdio.h> #include<stdlib.h> int heads() { ; } int main(int argc, char *argv[]) { int i,j,cnt; ]), M = atoi(argv[]); )*sizeof(int)); ; j<=N; j++) f[j] = ; ; i<M; i++, f[cnt]++) , j=; j<N; j++)//j<=N on book. if(heads(…
Description 题库链接 两人抛硬币一人 \(a\) 次,一人 \(b\) 次.记正面朝上多的为胜.问抛出 \(a\) 次的人胜出的方案数. \(1\le a,b\le 10^{15},b\le a\le b+10000,1\le k\le 9\) Solution 比较难,不会写,代码都是抄题解的...题解链接 Code //It is made by Awson on 2018.3.6 #include <bits/stdc++.h> using namespace std; #d…
传送门 抛硬币 扔一个硬币,正面概率为0.6.扔这枚硬币666次,正面就得3分,反面就得1分,求总分的方差. 直接套公式$np(1-p)*(X-Y)^2=666*0.6*(1-0.6)*(3-1)^2$ 稍微证明一下这个式子,题目等价于正面2分,反面不得分,这里我们先假设正面得1分. 首先我们来证明期望得分E(x)=np: $\sum_{i=0}^{n}*P(i)*i$ $=\sum_{i=0}^{n}C_{n}^{i}*i*p^i*(1-p)^{n-i}$ $=\sum_{i=1}^{n}n*…
Description James得到了一堆有趣的硬币,于是决定用这些硬币跟朋友们玩个小游戏.在一个N行M列的表格上,每一个第i行第j列的格子上都放有一枚James的硬币,抛该硬币正面朝上的概率为Pij,所有抛硬币事件两两之间是相互独立的. 现在,玩家在M列硬币中,从每一列里各选择1枚,共M枚,构成一组.如此重复选择N组出来,且保证被选择过的硬币不能再选.选好组之后,每组的M枚硬币各抛一次,如果都是正面朝上,则该组胜利,总分赢得1分:否则该组失败,总分不加也不减.请问,如果让你自行选择硬币的分组…
题目背景 小$A$和小$B$是一对好朋友,他们经常一起愉快的玩耍.最近小$B$沉迷于**师手游,天天刷本,根本无心搞学习.但是小$B$已经入坑了几个月,却一次都没有抽到$SSR$,让他非常怀疑人生.勤勉的小$A$为了劝说小$B$早日脱坑,认真学习,决定以抛硬币的形式让小$B$明白他是一个彻彻底底的非洲人,从而对这个游戏绝望. 题目传送门(内部题43) 输入格式 一行一个字符串$S$,字符集为所有小写字母.第二行一个数$L$如题意. 输出格式 一行一个数,表示本质不同的长度为$L$的子序列个数,答…
题面:https://www.cnblogs.com/Juve/articles/11487699.html 队长快跑: 权值线段树与dp yy的不错 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; const int MAXN=1e5+5; int n,a[MAXN],b[…
T1:队长快跑 基本思路:   离散化·DP·数据结构优化DP   这三个我都没想到....气死.   定义状态数组:\(c[i][j]\)表示在i时最小的a值是j时可以摧毁的最多的水晶数.   那么状态转移方程就是: c[i][j]=max(c[i-1][a[i]+1],c[i-1][a[i]+2],......,c[i-1][maxn])+1,if(a[i]>b[i]),这时还要同时更新c[i-1][j](j\(\in(b[i],a[i]]\)) c[i][j]=max(c[i-1][b[i…
还是在上次提到的数据之魅那本书,看到模拟这章,有个python模拟脚本,但书上不全,就自己简单写了下. 流程:在不同的平衡参数p(为0.5时为均匀的)下,模拟60次实验,每次投硬币8次,统计正面朝上的次数,并作图. import random import matplotlib.pyplot as plt repeats, tosses = 60, 8 # p为平衡参数,tosses为每次重复试验中投掷硬币的次数 # 返回当前平衡参数p的情况下,8次实验中正面的次数 def heads(toss…
题解 \(by\;\;zj\varphi\) 签到题,自己看题解 Code #include<bits/stdc++.h> #define ri register signed #define p(i) ++i using namespace std; namespace IO{ char buf[1<<21],*p1=buf,*p2=buf; #define gc() p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,std…
(数据范围的公式渲染有一些问题,大概是$a\le b\le 100$) 同洛谷4548,推导过程省略,直接给出答案-- 令$p_{H}=\frac{b}{a}$,$p_{T}=\frac{b}{b-a}$,则$pre_{i}=\prod_{j=0}^{i-1}P_{s_{j}}$($s$下标从为$[0,n)$) 令$S=\{i|s[0,i)=s[n-i,n)\}$,则答案为$\sum_{i\in S}pre_{i}$(本来是一个后缀除以整个串) 然后这道题的坑点在于要用分数表示,之后就需要高精度…
本蒟蒻表示终于把$HNOI2017$全AC了... 万岁! 附上各个题的题解: $DAY1$: $T1$: BZOJ4825: [Hnoi2017]单旋 $T2$: BZOJ4826: [Hnoi2017]影魔 $T3$: BZOJ4827: [Hnoi2017]礼物 $DAY2$: $T1$: BZOJ4828: [Hnoi2017]大佬 $T2$: BZOJ4829: [Hnoi2017]队长快跑 $T3$: BZOJ4830: [Hnoi2017]抛硬币 下一个目标:$HNOI2016$!…
Day1 4825: [Hnoi2017]单旋 注意到二叉查找树的一个性质:其中序遍历就是所有元素按权值排序的顺序. 所以我们可以离线地把这棵树的中序遍历求出来.然后我们在插入的时候就可以用一个set来维护前驱后继,这样就可以维护出整棵树的形态. 接着我们发现将最大.最小单旋到根后,一定会有一边儿子是空的,并且剩下的子树的深度+1.于是我们就只要支持单点修改.区间加.单点查询的数据结构即可.树状数组就好了. 然后树的形态维护的时候大力判断一下就好啦. #include <cstdio> #in…
HNOI2017 单旋(线段树.set) 手玩旋转操作(忽略手玩过程)可以发现:一次单旋对原树的变化实际上很小. 对于父子关系,单旋最小值会将\(Spaly\)上最小值变成原来根的父亲,将最小值的点右子树变为它父亲的左子树,单旋最大值相反: 对于\(dep\)的变化,单旋最小值时,除了最小值点和它的右子树,其他点的\(dep+1\).注意到\(key\)在一段区间的点\(dep\)同时变化,故离散化\(key\),线段树维护\(dep\).而删除根意味着所有点的\(dep-1\),也可以线段树维…