CF1385G口胡

只能说很神秘???

首先观察题面,假设给出的第一个序列为 \(a\),第二个序列为 \(b\)。对于 \((a_i,b_i)\) 我们连一条边。

得到的是一个 \(n\) 个点 \(n\) 条边的不一定连通的图,考虑一下有什么性质。

我们发现,每个节点的度数一定为 \(2\),根据这个可以得到 这张图的每一个连通块一定是一棵树或环

\(S_a\) 为序列 \(a\) 中没有出现过的数的集合。

对于 \(S_a\) 中的每一个元素,将 \(S_b\) 中与前者连通的任意一个元素配对,设其为 \((a,b)\),将 \((a,b)\) 的任意一条路径上的所有边都异或上 \(1\)。连通可以使用并查集解决。

于是分成树和环两种情况考虑。

树上差分即可。

设环长为 \(m\)

两个点 $ l,r \(,有两种异或方法:\)[l,r]$ 或 \([1,l),(r,m]\)

后者相当于前者多一个整个序列异或上 \(1\),所以只需要将所有 \([l,r]\) 异或上 \(1\) 后判断是否整体异或 \(1\)

代码应该比较好写吧(

posted @ 2022-01-11 13:59  Prean  阅读(10)  评论(0编辑  收藏  举报
var canShowAdsense=function(){return !!0};