标签:构造 选择 排序 ali isp mes lin 扩展 枚举
看错了一下题目意思,特别说一下:任意两个商店间只需要花\(1\)个单位的时间即可前往
若我们确定要前往的商店的集合\(S\),对于\(\forall i,j\in S\),若\(i\)在\(j\)前面,则满足:
我们发现这跟时间\(t\)没什么关系,那么排序,即顺序已经确定好了
对于\(a_i\neq 0\)的集合,其对于时间来说是指数变化的,最多只能选择\(30\)个
将原矩阵扩展成\(2^n\)行\(2^m\)列,第\(0\)行第\(0\)列均为\(0\)
令\(b_{i,j}\)为前缀和
考虑计算答案上界,枚举\(0\le i<j<2^n\),即上边界为\(i+1\)下边界为\(j\),令\(c_k=b_{j,k}\mathrm{xor}b_{i,k}\)
其能对答案的贡献为\((\sum\limits_{p=0}^{2^m-1} [c_p = 0]) \times (\sum\limits_{p=0}^{2^m-1} [c_p = 1]) \leq \frac{2^{2m}}{4}\)
故答案的上界为\(\frac{2^n(2^n-1)}{2} \times \frac{2^{2m}}{4}\)
给出构造\(b_{i,j} = \mathrm{popcount}(i\ \mathrm{and}\ j) \bmod 2\),下面证明其能达到上界
先考虑\(n=m\)的情况,此时上界为\(\frac{8^n(2^n-1)}{8}\)
枚举左上角\((i+1,k+1)\)右下角\((j,l)\),其贡献为\(b_{i,k} \ \mathrm{xor}\ b_{i,l}\ \mathrm{xor}\ b_{j,k}\ \mathrm{xor}\ b_{j,l}\)
由于在模\(2\)意义下,\(\mathrm{popcount}(x)\mathrm{xor}\mathrm{popcount}(y)=\mathrm{popcount}(x\mathrm{xor}y)\)
则贡献为:\(\mathrm{popcount}((i\ \mathrm{and}\ k)\ \mathrm{xor}\ (i\ \mathrm{and}\ l)\ \mathrm{xor}\ (j\ \mathrm{and}\ k)\ \mathrm{xor}\ (j\ \mathrm{and}\ l)) \bmod 2\)
当\(i=j\)或\(k=l\)时贡献显然为\(0\),忽略\(i<j,k<l\)的限制,最终答案除\(4\)即可
单独考虑某一位,\(i,j,k,l=0/1\),当\(\{i,j\}=\{0,1\},\{k,l\}=\{0,1\}\)时有贡献\(1\)。
即有贡献的个数为\(4\),无贡献的个数为\(12\)
枚举有多少位有贡献:
单位根反演可得\([2 \nmid i]=\frac{1-(-1)^i}{2}\)
除以\(4\)得\(\frac{8^n(2^n-1)}{8}\)
再考虑\(n\neq m\),令\(n<m\),此时\(k,l\)还有\(m-n\)位未填,此时不管其怎么填,都不会改变\(\mathrm{popcount}\)的值
\(\frac{8^n(2^n-1)}{8}\times 4^{m-n} = \frac{2^n(2^n-1)}{2} \times \frac{2^{2m}}{4}\)
若不考虑\(H(V,E‘)\)的直径等于\(G(V,E)\)的直径,合法的H满足
从而我们发现,钦定\(x\)后,仅得到H的dep数组,即可还原H
那么考虑进G
令G直径为\(L\),下面考虑\(L\)是偶数
那么直径的中点\(x\)确定,令其为根。
但特殊的,令\(dep_x=0\),\((u,v)\in E\),对应的dep数组满足\(dep_u-dep_v\in\{-1,0,1\}\),对于\(\forall i,dep_{i}\in[-\frac{L}{2},\frac{L}{2}]\)。那么我们可以发现对于一个H,其被统计了两次,最后答案除以\(2\)即可
具体的方法就是,我们可以找到所有的关键点(即距离\(x\)为\(\frac{L}{2}\))的点,然后对于\((u,v)\in E\),枚举\(dep_u-dep_v\),对关键点进行转移
若\(L\)是奇数,则直径中点是一条边,对两棵子树分别做即可
标签:构造 选择 排序 ali isp mes lin 扩展 枚举
原文地址:https://www.cnblogs.com/Grice/p/13257510.html