其他分享
首页 > 其他分享> > CF1553H

CF1553H

作者:互联网

一种套路是考虑对相差较少的数进行统计,不过在这题并没有什么用。

另一种思考方式是这样的:考虑对位数作为状态进行dp,显然若 \(x\) 与 \(a_i,a_j\) 最高几位都相同的话他们相减显然比较优(或者说这是比较优的情况的子集:\(a_i,a_j\) 最高几位相同),那么就从低位开始枚举,需要设3个量:\(minv_{x,j},maxv_{x,j},f_{x,j}\) 分别表示最高 \(j\) 位与 \(x\) 相同的与 \(x\) 异或的最小最大值,以及答案。

现在考虑 \(j+1 -> j\) (以下 \(y\) 表示与 \(x\) 仅 \(j\) 位不同(不妨钦定前者为1,后者为0)的数):
1.
\(f_{x,j}\) 有三种转移:
\((1)\) \(f_{x,j}=f_{x,j+1}\)
\((2)\) \(f_{x,j}=f_{y,j+1}\)
\((3)\) \(f_{x,j}=2^j+minv_{y,j+1}-maxv_{x,j+1}\)

以上若放在01Trie上则十分好理解(第二条第 \(j\) 位被减掉,第三条有 \(y \bigoplus a_i=x \bigoplus a_i+2^j\)(其中 \(a_i\)第 \(j\) 位为1))。

\(minv_{x,j}=\min (minv_{x,j+1},minv_{y,j+1}+2^j)\)

\(maxv_{x,j}=\min (maxv_{x,j+1},maxv_{y,j+1}+2^j)\)

这里非常显然。

标签:相同,min,maxv,显然,bigoplus,CF1553H,minv
来源: https://www.cnblogs.com/gooder-tmi/p/15563590.html