25.09.29

CF1942H

大概要做的就是把一些 \(a\) 分给一些 \(b\)\(c\),且 \(b\) 可以从祖先和儿子的 \(a\) 拿,\(c\) 还能从子树拿。

建模为二分图匹配,用霍尔定理判定,求解 \(\min\limits_{S}{a_S-b_S-c_S}\)

\(f_{i,0}\) 为只考虑 \(u\)\(a\),然后设 \(f_{i,1}\) 是考虑完子树的 \(a\)

会发现因为 \(b\)\(c\) 严格,所以肯定是优先匹配 \(b\),只需讨论取 \(b+c\)\(b\)\(\varnothing\) 三种然后转移即可。

接下来就是丑陋 ddp。

QOJ14336

肯定是先用移动操作做一段前后缀,中间的用逆序对次数。

代价是 \(l-1+n-r+\operatorname{inv}(l,r)\),那就是 \(l-r+\operatorname{inv}(l,r)\)

逆序对是蒙日阵,另外俩也是蒙日阵,可以直接分治决策单调性。

我学的这个单老哥在线分治地皮怎么每次都要做若干随机调整,场上要写这个的话看来得对拍一下。

AGC073A

先把弦都加进来,然后考虑任意一个点在一个方案中的颜色,容易发现就是它向圆心连线所交弦的个数。

好像说什么一半黑一半白,然后我们只要怎么怎么把块啥的数一下吗。

哎没听懂。

哦算期望。

只要一个点和圆心的连线跟某个弦相交,那么因为是 \(2^{n-1}\) 安排其他点,所以黑白的方案数是相同的,可以认为是 \(\frac{1}{2}\) 的概率取黑色。

所以启发我们选期望。

先算区域个数,就是边数加交点数,双指针一下就行。

然后需要给区域选择一个代表点。

以逆时针方向的顶点作为关键点。

把计算的东西改成黑减去白,这样 \(\frac{1}{2}\) 的概率取黑就变成了 \(0\) 的权值,而黑加上白我们是知道的。

现在只有最内层的区域是有贡献的,发现对于两根弦的交点有 \(2^{n-2}\) 种情况有贡献,弦的端点有 \(2^{n-1}\) 种情况。

官解是这样的:考虑一根弦,\(\frac{1}{2}\) 的概率被选,然后两侧必定一个黑,把这个权平分给端点就是各自 \(\frac{1}{4}\)

考虑两弦的交点,这个交点存在的概率是 \(\frac{1}{4}\),而如果有一个弦分开这个点和圆心,那么有 \(1\) 的贡献和 \(\frac{1}{2}\) 的权,也即这个点有 \(\frac{1}{8}\) 的权,而没有弦来分开它和圆心就是 \(0\)

跟上面的做法一样,记 \(V\)\(A_i+K\le A_{i+1}\) 的个数,\(I\) 为交点的个数。

那么我们可以算答案:\(\frac{N}{2}+\frac{I}{8}-\frac{N-V}{8}\)

其中 \(N-V\) 代表的是那些没有权的交点个数,可以理解为每次断掉,那么在上一根的最后一个交点那就没有匹配的弦了。

本质其实是一个东西啊。

AGC073B

“接下来我想问……我也不知道我怎么想到的……不知道我怎么解释……总之……”

先抓两个来做,发现答案是 \(a+b-\gcd(a,b)\),上界有了。

然后的感觉没有半毛钱关系。

考虑 \(f(a_1,\cdots,a_n)\) 表示这个问题的解,假设 \(a_1\) 是最小值,那么可以把所有其他操作设置为 \(a_i-a_1\)

然后就可以求解子问题 \(f(a_1,a_2-a_1,\cdots,a_n-a_1)+a_1\)\(+a_1\) 是为了把我们砍掉的操作补回去。

然后这个东西不断递归可以发现是 \(\mathcal{O}(\lg V)\) 层的,因为常数次操作就能把 \(a_1\) 折个半。

CF2151G2

考虑一个分治的做法,分析一下左侧出现了点集 \(S_L\) 和右侧出现了的点集 \(S_R\),我们会知道 \(\operatorname{card}(S_L)+\operatorname{card}(S_L\setminus S_R)=L\),当然这是基于没有那个只出现了一次的家伙。

因此我们就可以丢掉一半的位置了,同时我们再把这些两边都出现了的数删掉。

实现上要维护一下几个集合,然后 G1 就能过了。

G2 很诡异啊,我们做那个分治,做一轮之后拿一个随机化做法跑。

posted @ 2025-10-31 09:26  LQ636721  阅读(1)  评论(0)    收藏  举报