把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

计数与期望概率

Bracket Insertion

大概就是对最后的括号序列dp,算一下概率,用前缀和优化一下,没了?

A Random Code Problem

首先显然对于V=LCM(1,2,,n),可以将每个A分解成aV+b的形式,则a一定不会被改变,可以先算出期望然后剩下b

然后设fi,j表示i次操作剩j的期望值,然后再把上面的b算出答案就好了。

注意到17是不用算入V中的,所以复杂度O(720720k)

Research Rover

不会容斥(迫真

显然有用的经过障碍点个数只有logS个剩下的全是1。那么就设fi,j表示到了第i个点,经过j个障碍点的方案数。

发现不是很好dp,那就设fi,j表示到了i点,至少经过j个障碍点的方案数,这个东西可以一边做一边差分,也可以最后二项式反演,做到O(k2logS)

ClosestRabbit

诈骗题。

这个图只会有二元环,而且显然每个联通块一个。

则枚举二元环的两个点算贡献即可。注意精度。

Yes or No

首先发现我猜什么和这个点答案出什么是独立的,也就是说状态应该形如f(n,m)=pf(n1,m)+(1p)f(n,m1)+c

发现在一个点出YES个概率是nn+m,出NO的概率是mn+m,那么肯定猜大的,则概率为max(n,m)n+m

直接这样算不是很好算,首先如果碰到对角线可以看作弹回来,则至少会猜对max(n,m)个,考虑怎么样会多,发现只有在对角线上会乱猜,这时候有12的期望,则枚举对角线上的点算贡献即可。

~K Perm Counting

显然先按modk分,成为若干条链,然后考虑一条链的情况,最后背包合并。

考虑容斥,设fi,j0/1表示到了第i个点,有至少j个位置不满足,前一个数有没有选的方案数,转移显然,可以做到O(n2)

但是O(nlogn)让我大为震撼。

考虑不用dp做一条链,实际上可以将这条链的值域和位置拆开,然后连边得到两条独立的链,每条链上选若干个连续的两个点,并且不交。选i个的方案显然是(lenii),则这条链的答案平方即可。

合并发现只有两种本质不同的向量因此可以多项式快速幂,但是实际上不用因为全部乘起来也不用modxn,则可以DFT之后直接快速幂算即可。

Jigsaw Puzzle

非常讨厌这种题,非常不优美。

判定性显然考虑dp套dp,内层dp对于每个往后是否延申状压起来判断是否可行,但是发现每一列有264种状态,非常不行。

事实上如果相邻的两列都向后延申,这个一定比合并成一个竖的,然后后面要么成竖的,要么延申要劣。然后状态数就变成221个。

但是如果直接上转移还要乘26还有个m也不太行,然后你爆搜一下发现只有60个状态有用(

所以可以直接dp,复杂度大概是O(ωm2n),其中ω可以看作60

Merge Triplets

感觉上这个最终的序列应该具有某些单调性,但是也不尽然,可能出现3,2,1这种情况,要满足这三个在同一组。

又发现如果a>b,且a,b在同一组,ab前面,则a选了之后一定会接着选b

所以一个三个的连续段可以断成三个1,或者一个2一个1,或者一个3,满足段内下降,则最后的序列就是按照第一个数排序。

考虑直接对这个东西计数,设三种段数分别为c1,c2,c3,则有c1+2c2+3c3=n,并且因为一个2是被一个1断出来的,因此有c1>c2。将3n个数放进去的方案数是(3n)!2c23c3,又因为排了序所以还要除c1!c2!c3!,就可以O(n2)计数了。

Biconnected

先考虑联通图怎么计数,考虑容斥,设fS表示S集合联通的图个数,则枚举包含最小值的集合T,用总数减去fT乘上剩下任意的方案数即可。

然后考虑在此基础上减去缩点后不是一个点的图,设ps,t表示将t集合缩点以后连到s上,且s缩成一个点的方案数,则枚举加进来一个什么集合ops,t=ps,to×fo×(u,v)E[uovs],直接做枚举两重子集是O(4n)poly(n)的,就可以过了。

RowCol/ColRow Sort

有点小妙。

首先差分是显然的,枚举值k,若Ai,jk,则Ci,j=1,否则Ci,j=0。则如果对于每个kC排完序之后都是和B一样,那么就是合法的。

考虑行列排序的本质意义,记ci表示i1的个数,则行排序不影响c,而行排序之后的列排序相当于将ci排序,对于列行排序就是对列排序。因为B本来就是排好序的,所以相当于找到一对排列p,q,使得Ci,j=Bpi,qj

但是如果直接这样对p,q计数然后相乘会有问题,因为相邻的p,q显然要满足一些性质。设p,q下一个排列是p,q,则Bpi,qi=1Bpi,qi=1

将两边同时乘上p1,q1,得到Bi,j=1B(pp1)i,(qq1)i=1,重设P=pp1,Q=qq1,则相当于对P,Q计数,这样就可以直接乘起来。

求出当前阶段每行1的个数的c和下一阶段的个数d。如果我们在i点选择了Pi,那么相当于限制了j[1,ci]范围内的QjdPic,d都是单调的,所以直接设fi,j表示确定P从高到低确定到第i位,Q从低到高确定到第cj位的方案数,容易前缀和优化做到O(nm)。因为这个映射如果映射到c相同的地方本质相同,所以还要除一些阶乘,都是细节

总时间复杂度O(nmc),其中c是值域。

posted @   275307894a  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
历史上的今天:
2022-02-02 luogu P4525 【模板】自适应辛普森法 1
2021-02-02 luogu P5047 [Ynoi2019 模拟赛] Yuno loves sqrt technology II
2021-02-02 luogu P4887 【模板】莫队二次离线(第十四分块(前体))
浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示