异或
终于发现有异或的题大多数都没做出来。。。
于是下定决心整理异或的各种性质之类了。
1. 归零律:
2. 恒等律:
3. 交换律:
4. 结合律:
;
5. 自反:
.
更有用的结论:若\(a\oplus b=c\),那么\(a \oplus c =b\)
例题:
CF1554C Mikasa
考虑\(n \oplus a=b\),其中\(a>m\),求最小的\(b\)
于是我们可以有\(n \oplus b=a\)
即构造一个最小的\(b\),使其满足\(n\oplus b≥ m+1\)即可。
于是我们可以按位考虑这个问题,考虑某一位出现以下情况时:
- 当\(n=1, m+1=1\)时,\(b\)只能为\(0\),否则构造出来的数会更小。
- 当\(n=1, m+1=0\)时,从满足条件角度来说b可以为0或1,但我们应该让b为\(0\)且b的后面所有位全为0,此时就可以保证构造出的数大于m且b最小
- 当\(n=0,m=0/1\)时,只能让\(b=0/1\),否则将不满足条件
所以解题的关键在于第一步)
CF1338B Edge Weight Assignment
异或和为0的题目,通常可以考虑把异或和拆成两个部分,令两个部分的异或和相同(Team异或和)
这个题,我们先找一个度数大于1的点为根。
这样题目要求就是所有点到根的异或和相同。(我去这也太妙了)
最小种类:偶数条路径的全1 奇数条路径的为:奇数个1+一个2+一个3
所以有奇数的3种,否则一种。
最多:可以发现只有如果两个叶子的父亲相同,那这两条边也必须相同。其他边都可以不同。
本题重点在于找根。
本文来自博客园,作者:lei_yu,转载请注明原文链接:https://www.cnblogs.com/lytql/p/15095706.html