AGC036F Square Constriants

一定有 \(l_i<p_i\le r_i\)。

考虑朴素容斥,枚举每个数是 \(\le l_i\) 还是 \(\le r_i\)。对于 \(p_i\le x_i\),方案数是:把 \(x\) 排序后 \(\prod(x_i+1-i)\)(下标从 \(0\) 开始)。

太慢了。

把 \(l_0\) 到 \(l_{n-1}\),\(r_0\) 到 \(r_{2n-1}\) 一起排序。(\(l_n\) 到 \(l_{2n-1}\) 不用管,他们非正)

把 \(l_0\) 到 \(l_{n-1}\) 叫 A 类数。

把 \(r_n\) 到 \(r_{2n-1}\) 叫 B 类数。

把 \(r_0\) 到 \(r_{n-1}\) 叫 C 类数。

那么排序后一定形如 ABBAABABABACCCCCCC...。

所有 B 都要选, 每对 AC 中选一个。

先枚举一共选了多少个 A(设为 \(k\))

\(f[i][j]\) 表示前 \(i\) 个数中选了 \(j\) 个 A。对每次枚举进行 DP。

时间复杂度 \(O(n^3)\)。

LNR R2 D1 T3 不等关系

把大于号变成(没有限制-小于号)。

考虑朴素容斥,对于只有小于号和没有限制的方案数是 \(\frac{(n+1)!}{\prod(p_i+1)!}\),\(p_i\) 是每段连续的小于号的长度。

太慢了。

\(f[i]\) 表示将前 \(i\) 个数分完段了。答案是 \(f[n](n+1)!\)。

枚举上一个选没有限制的位置 \(j\),\(f[i]=\sum f[j]\frac{1}{(i-j)!}(-1)^{s_i-s_j}\),\(s_i\) 表示前缀中大于号的个数。

可以分治 FFT 优化到 \(O(n\log^2n)\),多项式求逆优化到 \(O(n\log n)\)。

AGC035F Two Histograms

掉线……

CTS 2019 D1T1 随机立方体

求概率和求方案数没什么区别。

三维比较复杂,先考虑二维,是类似的。

二项式反演,计算至少 \(k\) 个极大的数的方案数会更好做。

首先每行每列都至多只有一个数是极大的。

不妨把这 \(k\) 个极大的数放到主对角线的左上,这样好考虑。只要保证这 \(k\) 个极大,剩下的都随便放。

同时,这 \(k\) 个极大的数从左上到右下是递减的。

比如上图这样。(图片来源:兔队)

选出这 \(k\) 个极大数有 \(n^\underline{k}m^\underline{k}\) 种选择(要考虑顺序,也就是大小关系)。

对于红色部分,每个点都要小于左上的点。

对于黄绿色部分,每个点都要小于和它同一行和同一列的红点。由于红点已经有大小关系,所以让主对角线左下的点小于它右面的红点,右上的点小于它下面的红点就行了。

对于绿色部分,也是小于与它同一行或者同一列的红点。

对于白色部分,没有限制。

把大小关系连成一个森林。

有结论:给一个 \(n\) 个点的有根树森林赋点权,赋成 \(1\) 到 \(n\) 的排列,那么这棵森林中都是“堆”的方案数是 \(\frac{n!}{\prod size_u}\)。应该很好理解,从浅往深考虑,把最大的要放到这棵子树的根处,在 \(size_u!\) 种方案中有 \((size_u-1)!\) 种。

所以这里的方案数就是 \(\frac{(nm)!}{\prod\limits_{i=1}^k(nm-(n-i)(m-i))}\)。

三维也差不多。所以至少 \(k\) 个极大点的方案数是 \(n^\underline{k}m^\underline{k}l^\underline{k}\frac{(nml)!}{\prod\limits_{i=1}^k(nml-(n-i)(m-i)(l-i))}\)。由于要求期望,把分子上的 \((nml)!\) 丢掉就行了。

二项式反演一波走人。时间复杂度可以做到 \(O(\min(n,m,l))\)。

Endless Spin

长度为 \(n\) 的区间,每次随机一段染黑,问期望多少次全部染黑。

\(n\le 100\)

直接 min-max 容斥。

\[E(\max t_i)=\sum\limits_{S\subseteq U}(-1)^{|S|+1}E(\min\limits_{i\in S} t_i)\]

染不到第 \(i\) 块的概率是 \(\frac{i(i+1)+(n-i+1)(n-i+2)}{n(n+1)}\)。

\(f[i][j][k]\) 表示考虑前 \(i\) 个位置,当前最后一段区间长 \(k\),总的选法(上面的分子)为 \(j\)。

如果下一个不选,可以转移到 \(f[i+1][j+k+1][k+1]\)。

如果下一个选,可以转移到 \(f[i+1][j][0]\)。(要先乘上系数 \(-1\))

答案是 \(\sum\limits_{j=0}^{\binom{n+1}{2}-1}\frac{f[n][j][k]}{1-\frac{j}{\binom{n+1}{2}}}\)。

(还是不懂……)

Random Graph

给 \(n\) 个点的图,一开始没有边,每次随机两个点,然后连边。可能会随机到自环和重边。

问期望多长时间联通。

\(n\le 100\)

\(n\) 个点 \(m\) 条边的连通图个数怎么算?

考虑求不连通的图个数,枚举 \(1\) 所在的连通块的点数和边数。

\[f[n][m]=\binom{\binom{n}{2}}{m}-\sum\limits_{i=1}^{n-1}\sum\limits_{j=0}^m\binom{n-1}{i-1}f[i][j]\binom{\binom{n-i}{2}}{m-j}\]

概率呢?\(n\) 个点 \(m\) 条边的连通概率。

\[g[n][m]=1-\sum\limits_{i=1}^{n-1}\sum\limits_{j=0}^m\binom{n-1}{i-1}\binom{m}{j}(\frac{i^2}{n^2})^j(\frac{(n-i)^2}{n^2})^{m-j}g[i][j]\]

令 \(h[n][m]=1-g[n][m]\),也就是不连通概率。

答案就是 \(\sum h[n][m]\)。

下证 \(g[n][m]\) 可以表示成 \(\sum\limits_{i=0}^{n^2}C_{n,i}(\frac{i}{n^2})^m\)。其中 \(C_{n,i}\) 是某些常数。

证明不难。并且可以证明 \(C_{n,n^2}=1\)。

那么答案是 \(\sum\limits_{m\ge 0}(-\sum\limits_{i=0}^{n^2-1}C_{n,i}(\frac{i}{n^2})^m)=\sum\limits_{i=0}^{2n-1}-C_{n,i}\sum\limits_{m\ge 0}(\frac{i}{n^2})^m\)。

怎么求 \(C_{n,i}\)?

掉线了,以后再说。

LGV 引理

在一个 DAG 上,如果有一些起点 \(a_i\),一些终点 \(b_i\),如果在 \(a_i\rightarrow b_j,a_k\rightarrow b_l\) 相交时必有 \(i<k,j>l\),那么不相交的路径条数为 \(\det(g(i,j))\),\(g(i,j)\) 表示 \(a_i\) 到 \(b_j\) 的路径条数。

某经典题

\(n\times m\) 的矩阵中,填 \(1\) 到 \(k\),要求每个数都要 \(\ge\) 右边的数和下面的数,问多少种方案。

考虑画出每种数的轮廓线。这些轮廓线必不相交(可能部分或全部重合)。

反过来,没有交点的轮廓线一定可以对应一种矩阵。

LGV 引理一下即可。

EI 与菱形计数

想象成是一个立体图,\(a\times b\) 的矩阵,每个上面可以堆立方体,至多 \(c\) 个。

然后就变成上面的经典题了。

那个行列式也可以推出来是个很简洁的东西。

(具体去讨论看吧)

最新文章

  1. UIBezierPath 的使用
  2. Repeater数据绑定
  3. CSS Hack技术(一)
  4. HTML中属性ID和属性NAME的区别(转)
  5. Android 6.0 M userdebug版本执行adb remount失败
  6. C++ primer 练习 12.7
  7. Python with
  8. Linux常用命令详解(一) -- 处理目录常用命令
  9. python基础——面向对象进阶下
  10. [SCOI 2011]糖果
  11. #20175204 张湲祯 2018-2019-2《Java程序设计》第五周学习总结
  12. python3爆力破解rtsp脚本
  13. configparser 模块
  14. 你所不知道的ASP.NET Core MVC/WebApi基础系列 (一)
  15. 关于 CommonJS AMD CMD UMD 规范的差异总结(转)
  16. N个不同球取出M个的组合个数求解
  17. Java50道经典习题-程序7 处理字符串
  18. [Objective-C语言教程]函数(11)
  19. Vuex的第一次接触
  20. uvm的sequence

热门文章

  1. Skywalking总结
  2. 使用 Valgrind 检测 C++ 内存泄漏
  3. [跨域问题]ssm+vue前后台分离跨域问题解决方法
  4. 【模板整合计划】NB数论
  5. Mysql系列(十)—— 性能分析工具profiling
  6. C# 通过反射获取winform上的控件
  7. Git远程协作和分支
  8. 【转载】C#里怎么把string类型转换成double
  9. springMVC对RESTful的支持
  10. vue底部导航的精准显示