D
看错了一下题目意思,特别说一下:任意两个商店间只需要花(1)个单位的时间即可前往
若我们确定要前往的商店的集合(S),对于(forall i,jin S),若(i)在(j)前面,则满足:
我们发现这跟时间(t)没什么关系,那么排序,即顺序已经确定好了
对于(a_i
eq 0)的集合,其对于时间来说是指数变化的,最多只能选择(30)个
E
将原矩阵扩展成(2^n)行(2^m)列,第(0)行第(0)列均为(0)
令(b_{i,j})为前缀和
考虑计算答案上界,枚举(0le i<j<2^n),即上边界为(i+1)下边界为(j),令(c_k=b_{j,k}mathrm{xor}b_{i,k})
其能对答案的贡献为((sumlimits_{p=0}^{2^m-1} [c_p = 0]) imes (sumlimits_{p=0}^{2^m-1} [c_p = 1]) leq frac{2^{2m}}{4})
故答案的上界为(frac{2^n(2^n-1)}{2} imes frac{2^{2m}}{4})
给出构造(b_{i,j} = mathrm{popcount}(i mathrm{and} j) mod 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}(xmathrm{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)) mod 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 mid i]=frac{1-(-1)^i}{2})
除以(4)得(frac{8^n(2^n-1)}{8})
再考虑(n
eq m),令(n<m),此时(k,l)还有(m-n)位未填,此时不管其怎么填,都不会改变(mathrm{popcount})的值
(frac{8^n(2^n-1)}{8} imes 4^{m-n} = frac{2^n(2^n-1)}{2} imes frac{2^{2m}}{4})
F
若不考虑(H(V,E'))的直径等于(G(V,E))的直径,合法的H满足
- H的直径只有一条
- 选取H中任意一点,bfs,得到dep,若(|dep_{u}-dep_v|le 1),则(u,vin E')
从而我们发现,钦定(x)后,仅得到H的dep数组,即可还原H
那么考虑进G
- 钦定了H的直径
- (Esubseteq E'):若((u,v)in E),则(|dep_u-dep_v|le 1)
令G直径为(L),下面考虑(L)是偶数
那么直径的中点(x)确定,令其为根。
但特殊的,令(dep_x=0),((u,v)in E),对应的dep数组满足(dep_u-dep_vin{-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)是奇数,则直径中点是一条边,对两棵子树分别做即可