线性基
Y.IU.
悄悄努力,然后惊艳所有人。
展开
-
xor序列-线性基模板
https://ac.nowcoder.com/acm/problem/17968 大意:给出n个数,q次询问,问x和这n个数中的任意多个数异或是否能够得到y 思路: 线性基模板。线性基请看这位大佬博客:https://blog.csdn.net/a_forever_dream/article/details/83654397 首先要知道线性基的概念:线性基是一个数组,该数组由原序列构造而来,原序列中的每一个数都能由线性基中的若干个数异或而来。 线性基的构造: bool insert(int转载 2021-05-03 01:03:26 · 100 阅读 · 0 评论 -
新NIM游戏-线性基
https://ac.nowcoder.com/acm/problem/19928 Problem 和NIM游戏一样,但前两步是先手从取走任意整堆石子,后手也执行这一步操作,问让先手赢的第一回合取走的石子总数最少是多少。 Solution NIM游戏: 必胜态:a1^a2^..^an != 0 必败态:a1^a2^..^an = 0 由线性基的性质可知线性基中的任意数异或都不会为0,而又要取走石子总数最少,所以考虑尽可能多的将原序列中的数插入线性基中,所以将石子数排好序后再试着插入线性基中。原创 2021-05-03 10:39:53 · 75 阅读 · 0 评论 -
元素-线性基
https://ac.nowcoder.com/acm/problem/212510 Problem 给出n块矿石,每块矿石由一个序号和魔力值,如果某些矿石的序号异或和为0,那么这些矿石的魔力值会变成0,现在要选出一些矿石使得魔力值最大。 Solution 看到异或和,首先想到线性基,利用线性基的第二条和三条性质,线性基中的任意元素异或和都不会为0和线性基中的元素个数一定,所以优先用魔力值大的矿石序号来构造出的线性基。 Code #include <bits/stdc++.h> #原创 2021-05-03 11:38:53 · 66 阅读 · 0 评论