11.2XJ模拟赛
T1:
考虑如何得到集合i,我们。我们直接给出能得到集合 {i} 的充要条件:
设覆盖i的下标集合为Si,能得到{i}当且仅当对于任何j≠i,sj≠si
证明如下:
若存在 j≠i 使得 ,则在所有生成的集合中,i,j 要么都在里面,要么都不在里面,因此不可能生成集合 {i}。
否则,我们将所有不包含 i 的集合取补集,然后将所有集合求个交,即可生成集合 {i}。首先i肯定会有,然后证其他位置为什么没有。若有一些位置有,那么说明
使用异或哈希即可在 O(n) 内计数答案。
T2:
开始赤石。
首先将a,b排序
设dp_{i,j}为i匹配到j的情况和
dp_{i,j}=dp_{i-1,j-1}+dp_{i-1,j}+dp_{i,j-1}

浙公网安备 33010602011771号