首先,中心点是可以直接算出来的
把所有的坐标相加再除n就可以
然后枚举一个不靠近中心的点,枚举它绕中心点旋转的角度,只要枚举50次就可以了
计算出当前枚举的的角度是否能形成一个置换群
计算循环节,再用polya定理算个数
#pragma comment(linker, "/STACK:102400000,102400000")
#include
#include
#include
#...
分类:
其他好文 时间:
2014-10-24 19:03:13
阅读次数:
423
Period
Time Limit: 3000MS
Memory Limit: 30000K
Total Submissions: 13511
Accepted: 6368
Description
For each prefix of a given string S with N characters (each character...
分类:
其他好文 时间:
2014-10-19 21:30:13
阅读次数:
233
Power Strings
Time Limit: 3000MS
Memory Limit: 65536K
Total Submissions: 33178
Accepted: 13792
Description
Given two strings a and b we define a*b to be their concatena...
分类:
其他好文 时间:
2014-10-19 21:29:13
阅读次数:
204
对于一个字符串S,长度为L,如果由长度为len的字符串s(字符串s的最小循环节是其本身)循环k次构成,那么字符串s就是字符串S的最小循环节那么字符串有个很重要的性质和KMP挂钩,即 i - next[i] 为字符串s的长度 i%(i - next[i]) ==0证明:字符串S由s循环k次构成,那么有...
分类:
其他好文 时间:
2014-10-19 21:09:09
阅读次数:
195
思路挺清晰的。不过,我就是WA。不清楚为什么,很多数据都过了。其实,一个置换后若有循环节个数为K,则N必定可以除以尽K。而K正好可以看成一个环。为什么呢?看前K个珠子,就是一个环,而后面的若干个K个珠子,不过就是不停的重复而已。这样,循环节的个数可以由最大公约数求得。那么,这个K个珠子构成的环符合题...
分类:
其他好文 时间:
2014-10-19 11:33:12
阅读次数:
155
题意:对于一些长度为n的排列,将其作为一个置换,那么可能有一个自置换的次数使其回到1,2,3,...,n的情况。求对于所有能够回到1,2,3..,n的排列,不同的次数共有多少种。
思路:我们将置换划分成循环节的形式,那么我们发现最终可能的置换一定是这种形式:
(2,1)(3)(5,6,4)(7)
1,2->2,1
3->3
4,5,6->5,6,4
7->7
并且,若一段的长...
分类:
其他好文 时间:
2014-10-18 18:30:53
阅读次数:
239
http://acm.hdu.edu.cn/showproblem.php?pid=4291
凡是取模的都有循环节-----常数有,矩阵也有,而且矩阵的更神奇:
g(g(g(n))) mod 109 + 7 最外层MOD=1e9+7 可以算出g(g(n))的循环节222222224,进而算出g(n)的循环节183120LL,然后由内而外计算即可
注释掉的是求循环节的代码
/...
分类:
其他好文 时间:
2014-10-17 23:24:25
阅读次数:
362
在上次的文章 http://blog.csdn.net/acdreamers/article/details/38929067 中,学习了求自然数幂
和的有效方法,并且了解了求伯努利数的优美算法。今天,我们来看两个简单的问题。
问题:求的值,满足,和。
分析:很容易看出连续个数的结果是相同的,即循环节长度为,对于,需要先进行降幂,所用公式如下
...
分类:
其他好文 时间:
2014-10-10 03:44:02
阅读次数:
193
题目大意:给定一个字符串,求最小循环节(可以不整除)
样例的Hint是错的无视掉就好 循环节应该是cab
这题利用了KMP中next数组的性质,也就是n-next[n]表示循环节
POJ的题都要求整除,这题不用整除,直接输出n-next[n]即可
注意next数组不要开成char~
#include
#include
#include
#include
#define M 1001001...
分类:
其他好文 时间:
2014-10-09 17:04:58
阅读次数:
267
题目:计算分数的循环节。
分析:数论,组合。
n除以m的余数只能是0~m-1,根据抽屉原则,当计算m+1次时至少存在一个余数相同,
即为循环节;存储余数和除数,输出即可。
说明:(⊙_⊙)。
#include
#include
#include
#include
using namespace std;
int r[3003],...
分类:
其他好文 时间:
2014-10-08 02:41:54
阅读次数:
279