做题记录 25.6.23
\(\textcolor{purple}\odot\) CF1728G Illumination
将 \(p\) 排序
令 \(pr_{i,j}\) 表示位置 \(0\sim i\) 中最小的未覆盖关键点为 \(p_j\) 的方案数,\(sf_{i,j}\) 表示位置 \(i\sim d\) 中最大的未覆盖关键点为 \(p_j\) 的方案数
对于询问 \(f\),答案为 \(\sum_{l,r} pr_{f-1,l}sf_{f+1,r}(d+1-[l\le r]\max(f-p_l,p_r-f))\)
\(pr\) 和 \(sf\) 计算方式类似,以 \(pr\) 为例,显然 \(pr_{0,1}=1\),若 \(i\) 位置不存在灯则 \(pr_{i,j}=pr_{i-1,j}\),否则
总时间复杂度 \(O((n+q)m^2+dm)\)
\(\textcolor{blue}\odot\) CF1728E Red-Black Pepper
预处理 \(f_i\) 表示选择 \(i\) 个红色的最大权值,\(f_0=\sum_i b_i\),令 \(v_i\gets a_i-b_i\),将 \(v\) 从大到小排序后 \(f_i=v_i+f_{i-1}\)
对于一次询问 \(x,y\),求出 \(ax+by=n\) 的通解 \(a=a_0+kd\),则 \(ax\) 取值范围为一个等差数列,当公差 \(>\sqrt n\) 时暴力,小于时预处理,时间复杂度 \(O(n\sqrt n+m\sqrt n)\)
\(\textcolor{purple}\odot\) CF1726E Almost Perfect
在置换环上,对于三个位置 \(u\to v\to w\),令 \(p\gets p^{-1}\) 后变为 \(u\gets v\gets w\),此时要求 \(|u-w|\le 1\)
即排列合法等价于每个置换环上任意两个相距可以为 \(2\)(即其中一个走两次可以到达另一个)的点的值相差不超过 \(1\)
显然大小为 \(1\) 或 \(2\) 的环必然合法,令 \(f_i\) 表示 \(i\) 个有标号点分为互不区分的一元环或二元环的方案数,则 \(f_i=f_{i-1}+(i-1)f_{i-2}\)
大小 \(=3\) 或 \(\ge 5\) 的奇环根据距离为 \(2\) 重排,要求任意一对相邻的相差 \(\le 1\),且环长 \(\ge 3\),任取连续三个发现无解,对于大小 \(\ge 6\) 的偶环同理(分解为两个)
因此只需要考虑四元环,此时要求相对的位置值相差 \(1\),即在值域上选择两对相邻的
枚举有 \(t\) 个四元环,选择 \(t\) 个两对相邻的数方案数为 \(\binom{n-2t}{2t}\),这 \(2t\) 对组合为 \(t\) 组的方案数为 \((2t-1)!!\)(双阶乘),每个四元环有两种定向,系数为 \(2^t\),剩余 \(n-4t\) 个点的贡献为 \(f_{n-4t}\),总贡献为 \(\binom{n-2t}{2t}2^tf_{n-4t}(2t-1)!!\)
时间复杂度 \(O(\sum n)\)
\(\textcolor{purple}\odot\) CF1725K Kingdom of Criticism
先忽略单点修改,则建立并查集,用 set 保存目前存在的值,unordered_map 保存目前存在的值到对应集合代表元的映射,查询操作直接在并查集上跳即可,修改操作则在 set 中二分出范围,分别把代表元并起来,显然这样时间复杂度为单 \(\log\)
然后考虑加入单点修改,在以上的基础上在位置和之间增加一重映射,每个值建立一个点,位置的点指向值的点,每次区间操作合并后从 set 中删去 \([l,r]\) 中的值,下次出现单点赋为这一值时新建对应值的点
时间复杂度 \(O((n+q)\log (n+q))\)

浙公网安备 33010602011771号