3

https://acm.hdu.edu.cn/showproblem.php?pid=6765

题意:树上每个点有个颜色,多次询问,每次问两条链上哪条颜色数更多。保证其中一条链的颜色数多于另一条的两倍。

考虑类似想法的做法,给每种颜色随一个权值,然后只要比路径上权值的最小值就可以了。多随几次。

https://www.luogu.com.cn/problem/AT_arc120_f

枚举一个点算贡献。天才地考虑把链变成环。然后成功的缩小了问题的规模。一直做就可以了。

https://www.luogu.com.cn/problem/CF1025G

使用停时定理。对于一个局面构造其势能函数 \(\Phi\),只要每做一次操作,\(\Phi\) 都期望减少 \(1\),且终止局面的 \(\Phi\)\(0\),那么一个局面的 \(\Phi\) 就是其期望操作次数。

这题设有 \(m\) 个菊花,第 \(i\) 个菊花的大小是 \(b_i\)。定义一个局面的 \(\Phi=\sum f(b_i)\)。那么有 \(\sum(2f(b_i)-f(b_i+1)-(b_i-1)f(0))=m\)

不妨钦定 \(f(0)=0,2f(b_i)-f(b_i+1)=1\)。此时 \(f(i)=1-2^i\)

答案即为 \(\sum f(b_i)-f(n-1)\)

https://www.luogu.com.cn/problem/CF1951G

设当前有 \(t\) 个球还活着,第 \(i\) 个球和第 \(i+1\) 个球的间隔为 \(b_i\)。那么 \(\sum(2f(b_i)-f(b_i+1)-f(b_i-1))=n\)

这题我们不能钦定每个球的贡献相等了,否则会出现 \(2f(b_i)-f(b_i+1)-f(b_i-1)=\frac{n}{t}\),这个 \(t\) 不是定值了。

注意到 \(\sum b_i=m\),钦定 \(2f(b_i)-f(b_i+1)-f(b_i-1)=\frac{nb_i}{m}\) 即可。此时 \(f(i)=-\frac{n}{m}\binom{i+1}{3}\)

https://codeforces.com/gym/103428/problem/C

首先用原根转化成模意义下 01 背包。

考虑做 01 背包的过程,首先是枚举物品大小 \(x\),然后找出所有满足 \(f_i=0,f_{i-x}=1\) 的位置 \(i\),将 \(f_i\) 更新为 \(1\)。这样每个 \(i\) 都只会被更新一次,所以只要能以比较好的复杂度找到待更新的位置,做法就是对的。

注意 \(f_i=0,f_{i-x}=1\)\(f_i=1,f_{i-x}=0\) 的数量是一样的。只需找出所有 \(f_i\not=f_{i-x}\) 的位置即可。这个可以二分+哈希。用树状数组维护哈希值,复杂度 \(O(n\log^2n)\)

https://codeforces.com/gym/102978/problem/A

宇宙题。首先如果没有 \(a_{r,c}=v\) 的限制可以直接把 \(k-1\) 条轮廓线画出来,把第 \(i\) 条轮廓线往右下平移 \(i-1\) 个单位距离,然后 lgv。

考虑 \(a_{r,c}=v\) 对应到轮廓线上是在说什么,它等价于:

  • \(v-1\) 条轮廓线在格子 \((r+v-2,c+v-2)\) 的左上方;
  • \(v\) 条轮廓线在格子 \((r+v-1,c+v-1)\) 的右下方。

等价于:

  • 恰有 \(v-1\) 条轮廓线在格子 \((r+v-2,c+v-2)\) 的左上方;
  • \(v\) 条轮廓线在格子 \((r+v-1,c+v-1)\) 的右下方。

等价于:

  • 恰有 \(v-1\) 条轮廓线在格子 \((r+v-2,c+v-2)\) 的左上方;
  • 没有一条轮廓线经过了 \((r+v-2,c+v-2)\) 这个点。

然后就可以 lgv 了,在矩阵的每个位置上放一个多项式 \(a_0+a_1x\),其中 \(a_0\) 是在格子 \((r+v-2,c+v-2)\) 右下方的方案数,\(a_1\) 是在左上方的。答案即为行列式的 \(v-1\) 次项系数。这个可以插值。

中间那一坨逻辑感觉还是有点绕的,我想了好久!

posted @ 2025-08-26 09:49  Egg_eating_master  阅读(18)  评论(0)    收藏  举报