[bzoj5340]假面
修改:维护g[i][j]表示第i个数为j的概率,从前往后转移
转移方程:g[id][i]=g[id][i-1]*p+g[id][i]*(1-p),初始g[i][a[i]]=1
询问:对于每一个人i,输出sigma(P(除了i有j个正数)/(j+1))*P(i是正数)
P(i是正数)就是1-g[i][0],以下简写为h[i],j+1的逆元可以预处理出来
考虑P(除了i有j个正数),用f[j]表示前i个数有j个正数的概率
转移方程(滚动后):f[j]=f[j]*g[i][0]+f[j-1]*h[i],初始[0]=1
那么相当于要去掉i,设f'[j]=P(除了i有j个正数),则有转移:
f[j]=f'[j]*g[i][0]+f'[j-1]*h[i],f'[j]=(f[j]-f'[j-1]*h[i])/g[i][0](递推即可)
(需要特判g[i][0]=0,此时相当于他一定活着,那么f'[j]=f[j+1])
最终的期望可以用g来算,对于第i个人,即sigma(j*g[i][j])
,总时间复杂度为o(Qn+Cn^2logn),可以通过
1 #include<bits/stdc++.h>
2 using namespace std;
3 #define mod 998244353
4 int n,m,p,x,y,z,a[205],f[205],inv[205],g[205][105];
5 int ksm(int n,int m){
6 if (!m)return 1;
7 int s=ksm(n,m>>1);
8 s=1LL*s*s%mod;
9 if (m&1)s=1LL*s*n%mod;
10 return s;
11 }
12 int main(){
13 scanf("%d",&n);
14 inv[0]=inv[1]=1;
15 for(int i=1;i<=n;i++){
16 scanf("%d",&x);
17 g[i][x]=1;
18 }
19 for(int i=2;i<=n;i++)inv[i]=1LL*(mod-mod/i)*inv[mod%i]%mod;
20 scanf("%d",&m);
21 for(int i=1;i<=m;i++){
22 scanf("%d%d",&p,&x);
23 if (!p){
24 scanf("%d%d",&y,&z);
25 y=1LL*y*ksm(z,mod-2)%mod;
26 g[x][0]=(g[x][0]+1LL*g[x][1]*y)%mod;
27 for(int j=1;j<=100;j++)
28 g[x][j]=(g[x][j]*(mod+1LL-y)+1LL*g[x][j+1]*y)%mod;
29 }
30 else{
31 f[0]=1;
32 for(int j=1;j<=x;j++)f[j]=0;
33 for(int j=1;j<=x;j++){
34 scanf("%d",&y);
35 a[j]=g[y][0];
36 for(int k=j;k;k--)
37 f[k]=(1LL*f[k]*a[j]+f[k-1]*(mod+1LL-a[j]))%mod;
38 f[0]=1LL*f[0]*a[j]%mod;
39 }
40 for(int j=1;j<=x;j++){
41 y=z=0;
42 int t=ksm(a[j],mod-2);
43 for(int k=0;k<x;k++){
44 if (!a[j])z=f[k+1];
45 else z=(f[k]-z*(mod+1LL-a[j])%mod+mod)*t%mod;
46 y=(y+1LL*z*inv[k+1])%mod;
47 }
48 printf("%lld ",y*(mod+1LL-a[j])%mod);
49 }
50 printf("\n");
51 }
52 }
53 for(int i=1;i<=n;i++){
54 x=0;
55 for(int j=1;j<=100;j++)x=(x+1LL*j*g[i][j])%mod;
56 printf("%d ",x);
57 }
58 }
[bzoj5340]假面的更多相关文章
- BZOJ5340: [Ctsc2018]假面
BZOJ5340: [Ctsc2018]假面 https://lydsy.com/JudgeOnline/problem.php?id=5340 分析: 背包,只需要求\(g_{i,j}\)表示强制活 ...
- BZOJ5340 [Ctsc2018]假面 【概率dp】
题目链接 BZOJ5340 题解 我们能很容易维护每个人当前各种血量的概率 设\(p[u][i]\)表示\(u\)号人血量为\(i\)的概率 每次攻击的时候,讨论一下击中不击中即可转移 是\(O(Qm ...
- BZOJ5340: [Ctsc2018]假面【概率+期望】【思维】
LINK 思路 首先考虑减血,直接一个dp做过去,这个部分分不难拿 然后是\(op=1\)的部分 首先因为要知道每个人被打的概率,所以需要算出这个人活着的时候有多少个人活着时概率是什么 那么用\(g_ ...
- BZOJ5340 & 洛谷4564 & LOJ2552:[CTSC2018]假面——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5340 https://www.luogu.org/problemnew/show/P4564 ht ...
- 并不对劲的bzoj5340:loj2552:uoj399:p4564: [Ctsc2018]假面
题目大意 有\(n\)(\(n\leq200\))个非负整数\(m_1,m_2,...,m_n\)(\(\forall i\in[1,n],m_i\leq100\)),有\(q\)(\(q\leq2* ...
- BZOJ 1064 假面舞会(NOI2008) DFS判环
此题,回想Sunshinezff学长给我们出的模拟题,原题啊有木有!!此处吐槽Sunshinezff爷出题不人道!! 不过也感谢Sunshinezff学长的帮助,我才能做出来.. 1064: [Noi ...
- 图论 公约数 找环和链 BZOJ [NOI2008 假面舞会]
BZOJ 1064: [Noi2008]假面舞会 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1655 Solved: 798[Submit][S ...
- [BZOJ1064][Noi2008]假面舞会
[BZOJ1064][Noi2008]假面舞会 试题描述 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢 ...
- 1064: [Noi2008]假面舞会 - BZOJ
Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具.每个面具都有一个编号,主办 ...
随机推荐
- (Java)面向对象的三大特征
封装.继承与多态 封装 封装的作用(好处) 提高程序安全性,保护数据 隐藏代码的实现细节 统一接口 增加系统可维护性 属性私有(关键字private) 加上Private可使该属性私有于一个类,在其他 ...
- Serverless 架构到底要不要服务器?
作者 | aoho 来源 | Serverless 公众号 Serverless 是什么? Serverless 架构是不是就不要服务器了?回答这个问题,我们需要了解下 Serverless 是什么. ...
- django3上线部署踩的坑
好久没有用过django写项目了,最近公司开发个官网,一时兴起就拿来练练手,这不用不知道,一用吓一跳啊. 才多久,版本都到3.0了. 踩坑一:运行项目时失败报错,后来查找资料发现, 当你使用djang ...
- vue3.x移动端适配px2rem
1.什么是px2rem px2rem是一个插件能将px自动转换为rem,以适配各种不同的屏幕尺寸.前端开发可以直接使用设计稿量出的尺寸或者蓝湖给出的px进行布局,这样极大的提高了开发效率. 2.前提条 ...
- QQ消算轰炸,我好无聊真的
from pynput.keyboard import Key,Controller import time from random import choice time.sleep(5) # 创建键 ...
- MySQL:基础语法-1
MySQL:基础语法-1 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 关于数据库的安装操 ...
- [no_code][Alpha]事后分析
$( "#cnblogs_post_body" ).catalog() 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们要解决的 ...
- WiFi天线对PCB布局布线和结构的要求详解 - 全文
随着市场竞争的加剧,硬件设备正以集成化的方向发展.天线也由外置进化内置再进化到嵌入式,我们先来介绍这类应用的天线种类: ⑴ On Board板载式:采用PCB蚀刻一体成型,性能受限,极低成本,应用于蓝 ...
- 洛谷 P3332 [ZJOI2013]K大数查询 (整体二分理解)
链接: P3332 题意: 维护 \(n(1\leq n\leq 5\times10^4)\) 个可重整数集,编号从 \(1\) 到 \(n\).有 \(m(1\leq m\leq5\times10^ ...
- wifi 热点配置最优信道
wifi热点服务hostapd启动需要配置hostad.conf文件,其中有一个参数channel是用来配置信道的,信道的可选参数如下: # channel 1-14 is 2.4 GHz ; cha ...