摘要: 传送门 分析 我们发现n特别小,所以可以从这里入手 我们记录出所有列中某一种状态的列有多少个 我们再记录出每种列最少有多少个1(原来的1的个数和取反后的个数去最小值) 于是我们可以得出对于所有列异或一个数的答案 (实际就是对于每一行有一个全异或1或不异或的操作,将所有行压起来) 于是我们不难得到式子 阅读全文
posted @ 2019-03-10 22:49 水题收割者 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们先考虑暴力如何计算 对于S的子串SS,如果它有位置i使得SS[i] != T[i]那么我们就将两个字符之间用并查集连边 最后答案很明显就是并查集中所有边的个数 于是我们可以发现对于S[i] != T[j]衣服那个会在S的第i-j个子串连边 我们通过观察可以发现i - j = i - 阅读全文
posted @ 2019-03-10 22:39 水题收割者 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们可以将所有的b[i^j]直接对应到b[f(i^j)]上 于是显然可以fwt 我们对b进行t次fwt之后直接将答案与e0卷起来即可 注意由于模数不确定,我们可以将模数扩大$2^m$然后ifwt是直接除掉这个数即可 此题还要使用快速乘 代码 阅读全文
posted @ 2019-03-10 22:31 水题收割者 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们已知所有堆的异或和为0是后手必胜 我们又知道只有一堆时只有异或和为质数的情况为1其它为0 又因为ans[k][i^j] = ans[k-1][i] * ans[k-1][j] 所以直接fwt即可 我们可以对a数组fwt后用快速幂取它的n次方,然后再ifwt回来即可 代码 阅读全文
posted @ 2019-03-10 22:25 水题收割者 阅读(195) 评论(0) 推荐(0) 编辑