摘要: P3292 [SCOI2016]幸运数字 一颗带点权的树,每次查询指定两个点,求在两个点之间的这条路径(包括两端)上选任意个数能得到的最大异或值。 做法 考虑倍增维护LCA,同时维护向上$2^k$的点的线性基,然后查询求LCA时将经过的所有线性基暴力合并即可。 cpp include include 阅读全文
posted @ 2019-07-10 21:01 water_lift 阅读(194) 评论(0) 推荐(0) 编辑
摘要: P3812 【模板】线性基 给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。 $1\leq n\leq50, 0\leq a_i\leq 2^{50}$ 做法 显然重复不重复没有什么区别。 直接套线性基板子。 cpp include using namespace std 阅读全文
posted @ 2019-07-10 21:00 water_lift 阅读(177) 评论(1) 推荐(1) 编辑
摘要: P3857 [TJOI2008]彩灯 n个灯,每个灯只有开关两种状态,开始都关着。 m个开关,每个开关对应若干个灯,拉动一下就会使该开关控制的所有灯改变状态。 问有多少种不同的状态。 做法 考虑把每个灯抽象成一个二进制位,开是1,关是0,那么当前状态就是一个二进制数。 然后拉动开关就相当于给当前状态 阅读全文
posted @ 2019-07-10 21:00 water_lift 阅读(121) 评论(0) 推荐(0) 编辑