0.闲扯

早上好困啊……
看题,T1 撞了 lxl 讲的题被换掉了,一看是毒瘤题,感觉只有 T3 可做,然后就刚 T3
然后秒出错误结论开始二分/cy
然后开始打高精打数位 dp,最后当然是理所当然地炸了,交了空代码上去。

1.题解

A

有一棵带点权树,有如下几种限制条件:
\(a_{i,j}\)\(i\)\(j\) 的祖先且 \(w_i>w_j\)
\(b_{i,j}\)\(i\)\(j\) 的祖先且 \(w_i<w_j\)
\(c_{i,j}\)\(i<j\)\(i,j\) 没有祖孙关系。
现在你需要将树划分为两个不交集合 \(A,B\),对于每个 \(|B|\),最小化

\[\sum_{i,j\in A}a_{i,j}\lor c_{i,j}+\sum_{i\in A}\text{dep}_i+\sum_{i,j\in B}b_{i,j} \]

的值。
容易发现限制 \(\sum\limits_{i,j\in A}a_{i,j}\lor c_{i,j}\) 实际上是在说全部的点对数减去有祖先关系且祖先小于等于子孙的点对数。
考虑先解决 \(|B|=n\) 的情况,求出每个点有多少个比它小的祖先,那么答案就是所有点答案的和。
为了方便不妨先考虑点权不相同的情况。
考虑从 \(B\) 中拿一个点 \(x\)\(A\) 会发生什么:会加上一个 \(\text{dep}\),再减去 \(x\) 的祖先中小于 \(x\) 的点数(把两部分合起来就是全集)。后面是个常数可以预处理,把所有点按照这个增量排序即可。
如果有相等的点权,那么需要再减去 \(A\) 中权值相等且有祖孙关系的点对数,再随便推推式子贪贪心。

B

给出一个有向仙人掌,求有多少组路径对 \((P_1,P_2)\),满足它们覆盖了所有点且重复的次数 \(\le k\)
先考虑简化版:没有环没有 \(k\) 怎么做。直接拓扑排序再 dp,设 \(f_{i,j}\) 为第一条路径和第二条路径的结尾在 \(i,j\) 的方案数,我们根据当前节点的被覆盖情况转移。
有环有限制的情况先缩点,然后还是如上 dp,只不过这次表示的是某个块的某个点。

C

给定 \(p\),求最小的 \(n\) 满足 \([1,n]\) 中满足存在一个 \(i\)\(a_i<a_{i+1}<a_{i+2}\) 的数字占比超过 \(p\)
首先显然是不能二分求解的/shq/cy
做类似题有一个通用方案:如果考虑了前 \(B\) 个数字,满足性质的 \(A\) 个且 \(\dfrac AB<p\),那么我们找一个最小的 \(D\) 使得 \(\dfrac{A+D}{B+D}\ge p\),再把 \(D\) 加到 \(B\) 上继续迭代。
关于计算 \(A\) 可以跑区间 dp 之类的,因为答案的位数其实很小。

2.杂题选讲

GP of Belarus H

这个奇奇怪怪的时间是骗人的,发现一条路径的花费是 \(x_k^2y_k^2-x_1^2y_1^2+\sum(x_i^2+y_i^2)\)
所以我们最小化后面的玩意。

GP of Belarus K

区间 dp。

CF538H

合法的厌恶关系构成一个二分图,对于每个老师的集合可以求出对应区间,然后扫描线之类的维护。

CCPC-Wannafly Winter Camp Day4 Div1 H

六个人玩大富翁,有 \(n\) 块地,第一个踩到某块地的人会占领这块地,掷骰子时每个人掷出不同点数的概率不相同,求 \(500\) 轮后每个人占领的地块数期望。
看起来是一个 dp 的样子,不过状态比较蛋疼……

posted @ 2021-06-05 20:16  ajthreac  阅读(522)  评论(0编辑  收藏  举报