前两天看了Polya定理,今天做了一道HDU的题,伤心了,超时.我的高精度超时.看了statistics,大部分是用JAVA过的.要好好学JAVA.
话说就是因为这个游戏,Lele已经变成一个名人,每当他一出现在公共场合,就有无数人找他签名,挑战.
为了防止引起社会的骚动,Lele决定还是乖乖呆在家里.
在 家很无聊,Lele可不想像其他人一样每天没事在家数钱玩,于是他就开始数棋盘.他想知道,一个有N×N个格子的正方形棋盘,每个格子可以用C种不同颜色 来染色,一共可以得到多少种不同的棋盘.如果一个棋盘,经过任意旋转,反射后变成另一个棋盘,这两个棋盘就是属于同一种棋盘.
本题目包含多组测试,请处理到文件结束.
每组测试数据包含两个正整数N和C(0<NC<31)分别表示棋盘的大小是N×N,用C种颜色来进行染色.
话说这题就是Polya定理,公式:S=(C^M1+C^M2+...+C^Mn)/G
G是阶数,Mi是各阶循环节的个数.
根据题意,有旋转和翻转两种情况,G=8旋转4,翻转4.
翻转则是枚举对称轴,正方形又分为沿对角线和沿边的中垂线两种.