2025.10 做题笔记
MAO! GIVE ME LOVE 君
gimmick gimmick LOVE
どうか笑ってダーリン
MAO! GIVE ME LOVE 君
gimmick gimmick LOVE
今夜最後まで 鳴らせ
AT_arc121_e
思维难度:\(\color{#FFC116} 黄\) *1400
这也能反演 /jy
要求的条件是排列 \(a\) 满足每个 \(a_i\) 都不是 \(i\) 的祖先。
但是这个东西不好数。
注意到「都不是」,也就是说恰好 \(0\) 个不是,所以可以反演。发现钦定 \(i\) 个不合法是好数的,于是直接二项式反演做完了。
还有一点转化:因为直接按照祖先数的话,子树之间会产生冲突,所以需要把 \(a_i\) 是 \(i\) 的祖先转化为 \(i\) 在子树 \(a_i\) 内(不包含 \(a_i\)),因为 \(i\) 和 \(a_i\) 都是 \(1 \sim n\) 的排列所以两者是双射的。
被这个转化硬控一上午最后找 gpt 才解决了.jpg
哦具体数的方法就是树上背包,这个是容易的。
天依宝宝可爱!
[补]AT_arc133_d
思维难度:\(\color{#52C41A} 绿\) *1700
数位 dp 显然,所以首先要把 \([L,R]\) 拆掉,但是发现我们要在 \([L,R]\) 内选两个数,所以不能直接 \([0,R] - [0,L-1]\)。
但是注意到选一个数是一维差分,所以选两个数直接换成二维差分就可以了,令 \(sol(n,m)\) 为 \(l\) 取值 \([0,n]\),\(r\) 取值 \([0,m]\) 的答案,则最终答案就是 \(sol(R,R) - 2sol(L-2,R) + sol(L-2,L-2)\)。
其中 \(l \le r\) 这个条件可以忽略,因为最终得到的答案集合恰好 \((l_x,r_x)\) 和 \((r_x,l_x)\) 一一对应,所以最后直接除以 \(2\) 即可。
于是要求 \(sol(n,m)\)。转化成前缀和,得到:
结论:
令 \(s_n = \bigoplus _{i=1} ^n i\),有:
\[s_n = \begin{cases} n & n \equiv 0 \pmod 4 \\ 1 & n \equiv 1 \pmod 4 \\ n+1 & n \equiv 2 \pmod 4 \\ 0 & n \equiv 3 \pmod 4 \\ \end{cases} \]
故只需要考虑 \(l,r \equiv 0 ~or~ 2 \pmod 4\) 的情况了。
但是 \({} \bmod 4\) 很烦,考虑去掉。发现 \(x \equiv 0 \pmod 4\) 的情况等价于 \(x\) 的最后两位为 \(00\);\(x \equiv 2 \pmod 4\) 的情况等价于 \(x\) 的最后两位为 \(10\),且 \(s_x\) 的最后两位为 \(11\)。所以规定 \(l,r\) 的后两位合法,然后直接整体右移 \(2\) 位,可以得到:
注意此处直接用 \(s_x\) 的值代替 \(s_x\) 了。
第一个 \(\sum\) 直接枚举,后面两个是简单的数位 dp。
还没有的 submission
天依宝宝可爱!

浙公网安备 33010602011771号