2025-07-10 总结
2025-07-10 总结
Jzoj8622. 旋转排序(arrange)
首先判无解:考虑把方格黑白染色,发现旋转只是交换黑与黑、白与白,所以如果给定矩形奇偶性与目标矩形不同则可判定无解。当然这只是有解的必要条件,剩余的条件我们暂且不考虑。
对于 \(n=3\),有四种情况。对于 \(n=4\) 情况数很少,也可以搜素。
对于 \(n=5\) 直接搜索是搜不到的,考虑 meet in middle,我们从目标状态和给定状态分别宽搜约 \(10^5\) 个状态,如果有相同状态则有解,否则无解。
对于 \(n\ge 6\),我们把 \(\ge 6\) 的列先处理好,然后对于 \(1\sim 5\) 列发现可以套用 \(n=5\) 的做法。
具体来说,我们可以按顺序完成以下步骤而处理最右侧一列:
......
......
.....a
......
......
....ba
......
......
...cba
.....a
.....b
.....c
Jzoj8623. 边双连通等价(bicon)
考虑第一问,首先把原图求边双,那么现在对于树上一个点,其子树内分成了若干边双,这个点可以任意选择直接儿子节点与它形成边双,所以答案为 \(2^{n-1}\)。
第二问。发现对于树上一个有 \(s\) 个叶子的连通块,若要形成一个边双,则需要连 \(\lceil \frac s 2\rceil\) 条边。
那么树上 DP 即可。具体来说,我们需要记录以一个节点为根,形成叶子个数为奇数或偶数的连通块的方案数与叶子总数,这之中还要记录这个根选了 1 个或多个儿子,因为如果其只选了 1 个儿子,那么它本身也是叶子。
转移细节难易以实现方式决定。复杂度 \(O(n)\) or \(O(n\log n)\)。
Jzoj8625. 【2025.07.10NOI模拟】故障机器人Ⅲ(robot)
题意可以转化为求 \(x,y\) 满足不存在 \(z\) 使得 \(x\to z\) 且 \(z\to y\) 的存在 \(x\to y\) 的 \(x,y\) 数量。
那么对于一个串,依赖它的串一定是其子串,我们可以用 AC 自动机求出其每个前缀包含的最长存在的后缀(即以每个位置结尾的最长子串),那么满足条件的子串一定在其中。
对于这些子串,先把被包含的去掉。然后对剩余的还要满足求出来的出现次数要等于其在整个串中的出现次数,这样就一定不被包含,此时答案加一。
使用在 fail 树上使用树状数组可做到 \(O(n\log n)\)。

                
            
        
浙公网安备 33010602011771号