航航(和一些人讲的题目)第二期
航航笑传之 : 打篮球后:航航:(踩某老师脚之后)傻逼老师,傻逼老师,老师真傻逼。
AT_agc061_f
显然是在循环网格上游走。考察路径的结构,相当于选择一些行/列(必然有第一行或第一列),效果是行/列的边界成为起点终点。
如果已经知道起点终点,不难发现当选择行列个数 \(r,c\) 满足 \((r,c)=1\) 时有唯一合法方案,否则没有合法方案。若使用 LGV 引理计算,最后乘上逆序数符号 \((-1)^{ij}\) 即可。
问题是可能有行列不选,这可以直接连接行列边界来表示不选择此行列。为了得到 \(r,c\) 对应方案数,附上权 \(x,y\) 然后计算 \(\det(Ax+By+C)\) 即可,使用喜欢的方法计算。
AT_agc057_e
扫描值域换为 \(0,1\),注意一下可以把条件写成 \(A_i\circ(p,q)=B_i\) 的形式,这是最大关键,统计集合看上去就是一个不能变换的东西。
转一下变成 \(B_i\circ (p_i,q_i)=A_i,\forall i\),这有个大好处是对 \(p,q\) 计数每个 \(A\) 被数到次数相同并且可以简易计算,因此现在统计 $\lang p,q\rang $。
只需满足 \(B_k\circ (p_k,q_k)\subset B_{k+1}\circ (p_{k+1},q_{k+1})\) 即 \(B\circ (p_k,q_k)_{i,j}\le k\Rightarrow B\circ (p_{k+1},q_{k+1})_{i,j}\le k+1\),把两边复合一下根 \(p_k,q_k\) 无关,于是只需对于所有 \(k\) 统计
的排列对。而这样 \(lim\) 具有全部性质是两个数组都递减然后 \(lim_k\) 随 \(k\) 递增。只需利用递减性质,大概是对 \(q\) 的前缀最大值 dp 即可,因为 \(p\) 的方案数是可以简洁计算的。
ARC147F
配对的经典错误是交换第一个不同位置。
问题等价于在一个环上三个点走路,相邻的距离就是三个变量,当两点重合时不合法。考虑最后一次重合位置,假设是 \(AB\) 重合,交换以后 AB 的路径(因为最后一次重合,这不会一样),这可以配对除非这是最终时刻。
这样只需考虑两个棋子在最后重合的情况了。只需计算
熟知 \(F(x^{2^k})\equiv F(x)^{2^k}\pmod 2\),因此拆为 \(2^k\) 次幂,可以根号分治计算。
P5115
先不管 \(k_1,k_2\) 限制,而把 LCP 拆到每个后缀上计算。考察任意相等的串可以计算贡献。
后面的题目呢?没了
CF1707F
变换其实是
因此对 \(t\) 分治。假设始终 \(2\mid n\)。
\(2\mid t\) 相当于奇偶分开递归考虑。
\(2\nmid t\) 不太好说但是可以先做一次操作而 \(t=1\) 的充要条件是异或和为 \(0\) 而这就是说两边异或和相等因此需额外记录异或和入状态。由于奇偶的覆盖,两边递归下去的异或和均不变。
写出状态是 \(f(S,k)\) 其中 \(k\) 是异或和, \(S\) 是线段树结构。根据线性的看法不难知道 \(k\) 一维状态要么全等于 \(2^x\) 要么只有一个位置是而其他全是 \(0\)。因此可以线段树维护修改。
最终是 \(2\nmid n\) 的情况,相当于把两步的绑一起了。因此不难理解如下结论:对于 \(n=2^K\times B\),相当于把步长为 \(2^K\) 的 \(B\) 个东西异或在一个位置再判定合法性。然后问题就在 \(O(n+m\log n)\) 解决了。
CF618F
其实是抽屉原理,知道这一点之后有很多种方法完成,比较简单的方法是逐次添加 A/B 元素使得差始终位于 \([0,2n-1]\) 而有 \(2n+1\) 个状态(用完之类特判)。

浙公网安备 33010602011771号