码迷,mamicode.com
首页 > 其他好文 > 详细

「总结」杂题选讲

时间:2020-04-07 22:27:16      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:方案   统计   很多   problem   矩阵   蓝球   答案   uga   operation   

Bitwise Xor
我们可以发现一个序列中的最小的异或值是两个大小相邻的数的\(xor\)\(min\)
那么我们对序列排序。
只需要计算相邻的\(xor\)是大于等于\(k\)的方案。
\(dp[i]\)是以\(i\)结尾最小\(xor\)大于\(K\)的方案。
然后我们可以类似于用树状数组来搞最长升降转移。
这次用\(trie\)来转移。

MOD Problem
大水题

\[\begin{aligned} ans&=\sum\limits_{i=1}^{n}n\ mod\ I\&=\sum\limits_{i=1}^{n}n-i\lfloor\frac{n}{i}\rfloor\&=n^2-\sum\limits_{i=1}^{n}i\sum\limits_{j|i}^{n}I\&=n^2-\sum\limits_{j=1}^{n}\sum\limits_{i|j}i\&=n^2-\sum\limits_{j=1}^{n}\sigma(i)\\end{aligned} \]

然后线筛。

平方串
\(dy\)讲过的原题。
貌似是。。
还是用插点法,枚举长度\(len\),每\(len\)个插一个点。
发现每次两个串必然是越过两个插入的点的。
然后就找两个点的\(lcp\)\(lcs\)就可以了。
这样能够确定经过相邻两个特殊点的平方串左右端点的范围。
然后用类似\(hash\)的方法来统计答案就行了。

Conjugate
联赛原题吧。
分别考虑每一堆和第一堆做贡献。
使得某一堆在第一堆之前做贡献,可以发现此时其他堆是无效的。
那么最终的答案就是:

\[ans=1+\sum\limits_{i=2}^{n}\frac{a_i}{a_1+a_i} \]

湖人
感觉还是原题。
想不起来是哪里看到的了。
非别考虑每一个点自己终结自己的期望。
那么答案是:

\[ans=\sum\limits_{i=1}^{n}\frac{1}{d(i)} \]

可以用一个\(min\_25\)筛来做。
虽然我还没想懂怎么做。

Game with Marbles
先求出摸到一个蓝球之前摸到绿球的期望个数。
如果摸到了红的可以扔掉重新膜,所以认为红球其实是不存在的。
那么有:

\[E=\frac{G}{B+G}(E+1) \]

所以:

\[E=\frac{G}{B} \]

一个蓝球对应这么多绿球,那总共的绿球就是\(\frac{KG}{B}\)个咯。
对红再单独计算。
可以计算每一个红球。如果这个球没,没有被摸到,概率就是\(\frac{B}{B+1}\)
所以一个球的贡献就是\(1-\left(\frac{B}{B+1}\right)^K\)

游戏
这个就是贝叶斯公式了。
我们把每一个点左右两端确定的情况作为这个点期望的取决标准。
用线段树和两个矩阵来维护这些区间。
每个点的矩阵维护贝叶斯公式划出的分母和。

AGC035D
发现其实是消除掉一个数给两边加上。
那么每一个权值都要乘一个系数上去。
做个区间\(dp\)
\(dp[l][r][x][y]\)表示做右端点的系数为\(x,y\),区间\([l+1,r-1]\)已经被消除的最小答案。
枚举中间点合并区间。

\[dp[l][r][x][y]=\min\limits_{mid=l}^{r}dp[l][mid][x][x+y]+dp[mid][r][x+y][y]-(x+y)A_{mid} \]

operation
联赛原题。
由于除以二的操作并不会进行很多次。
所以我们可以直接按度数轻重点划分。

概率论
听过的,写在某个生成函数里面了。
https://www.cnblogs.com/Lrefrain/p/12274363.html
这篇的最后一个。

Jiry Matchings
经典的方法
如何用\(FFT\)快速求出重链划分情况下的所有贡献。
其实就是从叶子对所有轻儿子分治\(FFT\),然后再从一条重链上分治\(FFT\),把一条重链的贡献分治\(FFT\)出来。
这个时候链顶成为别人的轻儿子,再对这个操作递归即可。

小星星
做过的题。
https://www.cnblogs.com/Lrefrain/p/11644600.html
子集反演嘛。

Ribbons on Tree
考虑容斥。
我们如果去掉一些边集,就相当于一个连通块划分,同时从连通块中选择一个代表点的方案。
这是\(prufer\)序列的结论,详情见数树那个题
这个东西如果用题解写的方法就太麻烦了。
我们可以直接把第二维度压掉
直接设\(dp[x][0/1]\)表示第\(x\)的点的子树中\(x\)所在连通块是否存在代表点的方案数。

「总结」杂题选讲

标签:方案   统计   很多   problem   矩阵   蓝球   答案   uga   operation   

原文地址:https://www.cnblogs.com/Lrefrain/p/12656405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!