11.19 联测

又是 Div2。


Div1 T1

数学题。

交点有 nm+1nm+1 个。称第 ii 个圆上的点在第 ii 层上。

考虑第 ii 层上的点对 j>ij>i 层的贡献。

设答案的 π\pi 的系数为 aa,有理数项为 bb

a2(ni)i(m1)m+i(m1)ma \larr 2(n-i)i(m-1)m+i(m-1)mb4(ni)im+2im+(ni)(ni+1)mb \larr 4(n-i)im+2im+(n-i)(n-i+1)m

发现扇形的两边相加有可能小于弧长,全部错了,推倒重来。

设最后一次不满足上面的条件是两点相隔 pp

a2(ni)i(p+1)p+i(p+1)pa \larr 2(n-i)i(p+1)p+i(p+1)pb4m(ni)i(2m2p1)+2mi(2m2p1)+2(ni)(ni+1)m2b \larr 4m(n-i)i(2m-2p-1)+2mi(2m-2p-1)+2(n-i)(n-i+1)m^2


Div2 T2

dfs 枚举断的其中一个点 uu,考虑快速查找另一个点 vv

维护两个 multiset,表示 uu 的祖先的 sizsiz 集合,已经遍历过的且不是 uu 的祖先的 sizsiz 集合。

  • vvuu 的祖先。在 s1s1 中查找 n+sizu2\frac{n+siz_u}{2}
  • vv 不是 uu 祖先。在 s2s2 中查找 nsizu2\frac{n-siz_u}{2}

Div2 T1

显然两点间不能连边当且仅当已经有边或者不在一个点双内

所以 ans=sizi(sizi1)2ans=\sum \frac{siz_i(siz_i-1)}{2}


Div1 T2

求有多少个长度为 nn 的排列 {a}\{a\},使得 ai>k,j<i,ajaik\forall a_i>k,\exist j<i,a_j\ge a_i-k

考虑在值域上对前缀最大值进行 dp。

发现前缀最大值的位置并不重要,因为它必须填在当前能填的最前面的位置。

fifj×Anj1ij1f_i \larr f_j\times A_{n-j-1}^{i-j-1},系数的意思是在 jj 后面选 ij1i-j-1 个位置给 (j,i)(j,i)

前缀和优化一下。


Div1 T3

iiPP 中出现的位置为 aia_i

数一定是从大往小删的,反过来,看成从小到大填数。

设包含 a0,a1,,aia_0,a_1,\dots,a_i 最小区间为 [l,r][l,r]。那么 ai+1[1,l)(r,n]a_{i+1}\in[1,l) \cup (r,n] 中。

mm 个已经有的数把 PP 分成 m+1m+1 个”间隙“。

fi,l,rf_{i,l,r} 表示当前填到第 ii 个数,能够往 [1,l][1,l] 间隙的左侧放数,能往 [r,m+1][r,m+1]右侧放数。

  • i+1i+1AA 中出现了。此时把 lmin(l,ai+1),rmax(r,ai+1+1)l \larr \min(l,a_{i+1}),r \larr \max(r,a_{i+1}+1) 后转移。

  • i+1i+1 没在 AA 中出现。此时枚举 ai+1a_{i+1} 放在哪个位置转移。

直接做复杂度 O(n4)O(n^4),可以前缀和优化到 O(n3)O(n^3),但是好像能直接冲过去。


Div1 T4

11 的位置不影响,不妨钦定 p1=1p_1=1,最后答案 ×2n\times 2^n

考虑 11 胜利的条件,设第 ii 组为 p2i+1,p2i+2,,p2i+1p_{2^i+1},p_{2^i+2},\dots,p_{2^{i+1}}

11 胜利当且仅当每组中的最小值不在 AA 中。

考虑容斥,g(s)g(s) 表示钦定 ss 中的组的最小值在 AA的方案数。

考虑 dp,设 fi,sf_{i,s} 表示当前考虑到 AiA_i,已经钦定的组为 ss

这样设状态有个精妙之处:ss 刚好是已经确定位置的人数。

AA 从大到小排序。

  • 将第 jj 组的最小值钦定为 Ai+1A_{i+1},此时 fi+1,s2jfi,s(2nsAi+12k1)(2k)!f_{i+1,s|2^j} \larr f_{i,s}\binom{2^n-s-A_{i+1}}{2^k-1}(2^k)!
  • 不钦定任何一组,此时 fi+1,sfi,sf_{i+1,s} \larr f_{i,s}

最后 g(s)=fm,s(2ns1)!g(s)=f_{m,s}(2^n-s-1)!