A: 按照题意模拟,答案为 。
B: 遍历同时存上一轮剩余的食材数量,贪心地先用上一轮剩余的食材,如果不够用就用这一轮的,如果还不够用就无解。
C: 统计每一种字符数量然后使用乘法原理 暴力求每种答案的方案数。
D: 遍历同时统计当前修改的次数以及当前连续 0 的个数,如果达到了 则统计当前修改次数的答案,并且修改当前位为 1。对于更大的修改次数,答案都为
。
E: 把一个怪物当成两个只有奇/偶时间出现的怪物来看待。按照坐标的奇偶性讨论(坐标的奇偶性可以通过横纵坐标异或然后与 得到),一个怪物要么只堵住通常的路径,要么只堵住时停时的路径。创建两层分层图,一层未时停,一层已时停。同一层走会被堵住通常路径的怪物堵住,而从未时停走到已时停层会被堵住时停的怪物堵住。直接 BFS 即可求出答案。
F: 我们只关心每个质因数个数的奇偶性。所以,我们将 数组根据
个质因子转化为一个
位二进制数,问题转化为给定一个区间,求是否存在一个异或和为
的非空子集。
注意到 个数必然存在一个异或和为
的非空子集。对于长度在
以内的区间,维护一个异或线性基,不断插入线性基,如果某个数没有修改线性基则存在异或和为
的非空子集,否则不存在。
赛场上用的线段树,比这个解法多一个 ,但是也可以通过。

京公网安备 11010502036488号