随笔分类 - D - bitset
摘要:给定 n 个多重集,有 4 种操作:
(1)1 x v —— 将集合 x 变成单元素集合 {v}。
(2)2 x y z —— 将集合 x 变成集合 y 与集合 z 的并集。
(3)3 x y z —— 将集合 x 变成集合 y 与集合 z 的乘积。集合乘积 A\times B 定义为 \{\gcd(a, b)|a\in A, b\in B\}。
(4)4 x v —— 询问元素 v 在集合 x 中的出现次数 mod 2。
阅读全文
摘要:对于一棵 n 个点的树,我们称两个点是相邻的当且仅当两个点的距离 <= 2。
现在给定 n 个集合,每一个集合表示树上某个点的相邻点是哪些。不过你不知道哪个集合对应哪个点。
现在这些集合构造出原树。保证至少存在一个解。如果多解,输出任意解即可。
阅读全文
摘要:通过以下的方法生成一个序列:
(1)初始时只有一个 "P"。
(2)将当前字符串 s 的 "P" 变成 "B","B" 变成 "P" 得到 s',将 s' 接在 s 之后得到新的序列。
生成的前几个步骤得到字符串为 P,PB,PBBP,PBBPBPPB......
给定一个有向图,每条边上有字符 'P' 或者 'B'。求从点 1 出发走出如上序列的最长路径(即第一步走 s[1], 第二步走 s[2], ...)的最长可能长度。
如果长度 > 10^18,则输出 -1。
阅读全文
摘要:给定一个 n*m 的 01 矩阵 A,一开始所有格子都为 0。
我们定义一个子矩阵 (x1, y1) - (x2, y2) 是好矩阵,当且仅当 A(x1, y1) = A(x2, y2);A(x2, y1) = A(x1, y2);A(x1, y1) ≠ A(x1, y2)。
其中满足 x1 < x2, y1 < y2。
现有 q 次修改,每次形式为 (a, l, r),表示将第 a 行的 l~r 个元素全部取反。
现需要在每次修改后判断是否有解。如果有,任意输出一组解。
阅读全文