摘要: 嘟嘟嘟 题中说选的数的编号亦或和不能为0,也就是在这个集合中,不能用不同的选取方案亦或出相同的值。由此联想到线性基的一个性质是,每一个数都能由线性基中特定的一些数亦或得到。 所以我们就是要求出这些数的线性基,并且满足所选的数的魔力值的和最大。 本来以为是dp,结果按魔力值排个序贪心就过了。 证明在网 阅读全文
posted @ 2019-01-11 16:06 mrclr 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟(洛谷) 这道题算是利用了线性基的一个性质:对于大小为$k$的线性基中亦或出来的一个数$x$,那么用原数组的数亦或出来的所有数中,$x$出现了$2 ^ {n - k}$次。 那么就可以算出线性基中比$x$小的数有多少个(记为$cnt$),然后答案就是$cnt * 2 ^ {n - k} + 1 阅读全文
posted @ 2019-01-11 15:27 mrclr 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 不愧是WC的题,思维真的很妙(虽然代码特别简单)。 首先暴力找出所有路径肯定不行。 题中说可以经过重复的边,并且边权也会被计算多次。那么就是说,如果经过一条边再沿这条边回来,这条边的贡献就是0了。但是我们可以通过这条边到达别的路径上。更准确说,是到一个环上。 于是就有这么一个做法:先找出所有 阅读全文
posted @ 2019-01-11 14:01 mrclr 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 首先都知道这题得用线性基。 然后预处理出线性基的倍增数组,查询的时候找lca的同时维护路径的线性基数组。 倍增lca复杂度$O(logn)$,合并线性基$O(log ^ 2 n)$,所以总复杂度$O(n log ^ 3 n)$。 注意的是,查询的时候如果一步都跳不了,$x$和$y$所在点的权 阅读全文
posted @ 2019-01-11 10:46 mrclr 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 集训的时候发现自己不会线性基,就打算学一下。 这东西学了挺长时间,其实不是因为难,而是天天上午考试,下午讲题,结果晚上就开始颓了。 今天总算是有大块的时间好好学了一遍。 这里推荐menci大佬的博客:线性基学习笔记 这道题就是求一个集合的第$k$小亦或和。 首先线性基的概念、构造方法什么的看 阅读全文
posted @ 2019-01-11 09:39 mrclr 阅读(117) 评论(0) 推荐(0) 编辑