[概率期望DP]JZOJ 4212 我想大声告诉你
Description
这个游戏有n 个人参加,每一轮随机选出一个还没有出局的人x,接着x 会出局。x 在出局之后剩下的人会受到一次攻击,每一个人在遭到攻击之后会有p 的概率出局。(注意遭到攻击出局的人是不能攻击剩下的人的)
在所有人都出局之后,遭受攻击次数等于特定值的人能够成为胜者。所以现在小R 想要知道对于每一个0 <= k < n,自己恰好在遭受k 次攻击之后出局的概率是多少。(这里的出局指的不是被攻击出局)
注意在这题中,所有数值的运算在模258280327 的意义下进行。
Input
对于每一组数据输入仅一行三个数n, x, y,表示在这组数据中有n 个人参赛,p = x/y。保证y 和258280327 互质。
Output
Sample Input
23 40 1009 32 1049
Sample Output
172186885 92980918 16529941229582513 163885050 39458156 102374877 116777758 216371874 55544199 95860736 8136787
Data Constraint
对于100% 的数据,n <= 2* 10^3,1 <= T <= 5,0<= x < y <= 10^9
分析
我想大声挖倍内听!吔X啦梁非凡!
内!我要炒内啊!
↑这是我看到题目一瞬间脑补的
这题意有个等价的方法
就是第i次游戏选第i个人,第i个人未出局就出局,并且使后面i+1~n个人有p概率出局,已出局就不管
其实是一样的
那么可以写DP
设f[i][j]为选第i个人前,1~i-1有j个人被点出局了
那么状态转移显然:
1、f[i+1][j+1]+=f[i][j]*((y-x)/y)^(j+1)(i被点掉了)
2、f[i+1][j]+=f[i][j]*(x/y)^(j)(i刚好没了)
最后求和除个n就行
#include <iostream> #include <cstdio> #include <memory.h> using namespace std; typedef long long ll; const int P=258280327; const int N=2e3+10; int T,n; ll x,y,ny[N],f[N][N];ll Power(ll x,ll y) {ll ans=1;for (;y;y>>=1,(x*=x)%=P) if (y&1) (ans*=x)%=P;return ans;}int main() {for (scanf("%d",&T);T;T--) {scanf("%d%lld%lld",&n,&x,&y);ll cy=Power(y,P-2);ny[0]=1;memset(f,0,sizeof f);f[1][0]=1;for (int i=1;i<=n;i++) ny[i]=ny[i-1]*(y-x)%P*cy%P;for (int i=1;i<n;i++)for (int j=0;j<i;j++)if (f[i][j])(f[i+1][j+1]+=f[i][j]*ny[j+1]%P)%=P,(f[i+1][j]+=f[i][j]*(1-ny[j]+P)%P)%=P;for (int i=0;i<n;i++) {ll lans=0;for (int j=1;j<=n;j++) (lans+=f[j][i])%=P;printf("%lld ",lans*Power(n,P-2)%P);}printf("\n");} }
View Code
转载于:https://www.cnblogs.com/mastervan/p/10316836.html
[概率期望DP]JZOJ 4212 我想大声告诉你相关推荐
- 【loj6191】「美团 CodeM 复赛」配对游戏 概率期望dp
题目描述 n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 输入 一行一个正整数 n . 输出 一行一个实数,表示期望剩下的人数, ...
- [NOIP2016]换教室(概率期望$DP$)
其实吧我老早就把这题切了--因为说实话,这道题确实不难啊--李云龙:比他娘的状压DP简单多了 今天我翻以前在Luogu上写的题解时,突然发现放错代码了,然后被一堆人\(hack\)--蓝瘦啊\(ORZ ...
- ACM概率期望dp刷题总结
这个周刷了很多概率期望有关的dp题目,缘起2016青岛D题和取log的神操作题HDU 5988 2016青岛区域赛 (最小费用流) 这类题目没有固定的模板,而且概率可以很容易插入一些经典模型,比如下面 ...
- 大佬(概率期望DP)
首先根据数据范围,可以判断基本上是n^2的复杂度 通过分析我们发现每一次都可以从m个数中任意选,既然任意选,那么此时的概率的分母就是不变的,然而题中涉及的是某一段的最大值,所以我们按套路假设 f[i] ...
- HDU 4405 概率期望DP
有 0到 n 个格子.掷骰子走路,求出到终点的数学期望,有飞行的路线. dp[i] 存储在i位置走到终点的期望. 转移方程dp[i]=(dp[i+1] ----> dp[i+6])/6+1; 有 ...
- bzoj2878 [Noi2012]迷失游乐园——概率期望DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2878 这个博客写得很好:https://www.cnblogs.com/qt666/p/72 ...
- BZOJ-4008: [HNOI2015]亚瑟王 (概率期望DP)
4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec Memory Limit: 512 MBSec Special Judge Submit: 1627 Solved: ...
- bzoj3450 Easy(概率期望dp)
3450: Tyvj1952 Easy Time Limit: 10 Sec Memory Limit: 128 MB Submit: 876 Solved: 648 [Submit][Statu ...
- 【BZOJ2337】XOR和路径,概率期望DP+高斯消元
Time:2016.08.27 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 与游走思路有一定相似的地方 对答案的每一位进行判断 通过高斯消元解出每个点到n xor路径为1的概率 ...
最新文章
- centos7 安装Git
- 【编程题目】调整数组顺序使奇数位于偶数前面
- SAP按单生产和重复制造
- Linux下安装配置MySQL
- 2017计算机应用考研大纲,2017考研计算机大纲
- Mysql jdbc driver源码浅析(一)
- Android ListView中EditView再次焦点获取
- php 网路io是什么意思,io接口位于什么和什么之间
- ucgui移植到rt_thread simulator
- FreeSwitch WINDOWS无法支持H264
- 「数据集」一文道尽人脸数据集
- 电线电缆行业MES解决方案
- adm怎么下bt连接_迅雷不能下载版权敏感资源,试试这两款优秀的BT下载神器
- 启动TC的TAO窗口
- 说说C/C++编译的那些事儿
- 计算机应用基础2004版,计算机应用基础2004年上半年全国试题
- 2022强国杯初赛部分题目
- android 点击查看大图_你是不是遇到,在花瓣网部分图片详情页,点击“放大镜”无法预览高清大图?...
- 数据结构——二叉树总结
- 【微信小程序】零基础学 | 小程序语法