题目
分析
我们发现,如果[l,r]的异或和为k是真要求,有且仅当不存在[l,i]和[i,r]两个区间的异或和不为k。
我们用带权并查集了维护这些,但是,由于区间不连续,我们将点权移到边上,对于区间[l,r]的点权异或和,变成[l,r+1]边权异或和。并查集合并时将大点连向小点, 最后通过并查集求异或点缀和,如果某个点没有限制,值为零。#include#include #include #include #include #include #include #include
本文共 1205 字,大约阅读时间需要 4 分钟。
我们发现,如果[l,r]的异或和为k是真要求,有且仅当不存在[l,i]和[i,r]两个区间的异或和不为k。
我们用带权并查集了维护这些,但是,由于区间不连续,我们将点权移到边上,对于区间[l,r]的点权异或和,变成[l,r+1]边权异或和。并查集合并时将大点连向小点, 最后通过并查集求异或点缀和,如果某个点没有限制,值为零。#include#include #include #include #include #include #include #include
转载于:https://www.cnblogs.com/chen1352/p/9079616.html