CF1385G口胡
2024-09-02 16:25:01
只能说很神秘???
首先观察题面,假设给出的第一个序列为 \(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\)。
代码应该比较好写吧(
最新文章
- android中的线程池学习笔记
- Java集合与算法
- OD调试篇6--对一些真正的小程序进行一点点的修改
- MVC模式(Model View Controller)下实现数据库的连接,对数据的删,查操作
- activiti搭建(五)BPMN介绍
- jQuery之$(document).ready()使用介绍
- mindmanager 快捷键
- 利用tcpdump抓取mysql sql语句
- CentOS7使用Redis
- Hibernate 事物隔离级别 深入探究
- VisualStudio中的代码段
- MVC4的过滤器
- IOS开发计算文本尺寸
- Common Data Service (CDS) 初探
- sqlserver数据库触发器调用外部exe
- 初步了解Bootstrap4
- js常用内置对象
- cdh5.13.1 hadoop hdfs HA模式无法启动
- 测试浏览器是否支持某个CSS属性
- 如何在Linux系统上安装字体