摘要:
UVA_11255 应用burnside引理,关键在于对于每种置换求出不动方案的种数。import java.math.BigInteger;import java.util.Scanner;public class Main { static int MAXD = 50; static Scanner cin = new Scanner(System.in); static int N, P, pn; static int[] a = new int[5], b = new int[5], prime = new int[MAXD], p = new int[MAXD... 阅读全文
摘要:
USTC_1130 时隔多日,回过头在再做这个题目时终于AC了,于是顿时觉得能力的提升确实需要时间的积淀。 首先,如果Alice会输,那么各个棋子所在位置的sg函数值的异或必然为0,于是我们可以先预处理出各个节点的sg函数值。 至于求方案,一开始的想法就是去dp了,比如用f[i][j][k]表示到第i个节点时放了j个棋子,且它们异或值为k的方案总数。这样i的上限是100,j是10000,k是128,这样的复杂度显然是不能承受的。 我们联想到异或的性质,偶数个同一个数的异或为0,因此,整个局面的sg函数值,实际上只与每个节点上棋子数目的奇偶性有关,而剩下的棋子则两个两个的看成一组,放在哪... 阅读全文