这个题的置换恰好是有规律的,所以也不用把置换给存下来,然后只要求出置换的循环节就可以了。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int N = 200001; 8 bool ...
分类:
其他好文 时间:
2015-07-23 21:36:57
阅读次数:
113
题意:
给出c种颜色和s个珠子;
将珠子染色后穿成一个环;
旋转和翻转相同的视为同构;
求方案数;
题解:
polya计数的裸题;
定义m为颜色数,c(Pi)为Pi这个置换的循环节个数;
那么根据定理,答案L为;
然后只要求出各个置换的循环节就好了;
题中允许两种置换,先考虑旋转;
旋转有n种置换方式,分别是转0,转360/n,转2*360/n.......
分类:
其他好文 时间:
2015-07-22 16:12:46
阅读次数:
86
DescriptionThere is a string A. The length of A is less than 1,000,000. I rewrite it again and again. Then I got a new string: AAAAAA...... Now I cut ...
分类:
其他好文 时间:
2015-07-22 12:20:41
阅读次数:
143
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3374题意:给出字符串,求最小表示法和最大表示法,并输出有几次出现,其实就是最小循环节的个数题解:最小表示法求解,KMP求解最小循环节 最小循环节 = len - Next[len] 个数必须整出,如不整...
分类:
其他好文 时间:
2015-07-19 16:17:44
阅读次数:
81
题意:有一个数列 seed[x+1]=(seed(x)+step)%mod 给出 step 和 mod 如果求出的是以 1。。。mod-1 为循环节的数列 则为 good choice 否则 则是 bad choice思路:1.用标记法 如果 形成循环节时 每个数都被标记到 则good choice...
分类:
其他好文 时间:
2015-07-18 12:13:38
阅读次数:
180
题意:给一个青蛙和一朵花浇水,它们会按每分钟(h*x+y)mod m的速度长高,问它们分别长到a1和a2,最少需要多长时间。
思路:开始时理解错了题意,注意是同时给它们两个浇水啊!!!两个小家伙同时都在长高啊。找到循环节,暴力就可解。
AC代码:
#include
#include
using namespace std;
int main()
{
long long m,h1...
分类:
其他好文 时间:
2015-07-17 09:41:56
阅读次数:
106
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1358题意:大概就是说给你一个字符串,然后找出能够循环的子串,输出子串某位置以及循环节的个数。题解:用KMP算法得到next数组。然后,从i=2开始遍历,得到的i-next[i]为循环节大小。如果对于i能...
分类:
其他好文 时间:
2015-07-15 18:21:49
阅读次数:
106
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746题意:给一段字符串,求添加多少个字符,使得这个字符串至少循环两次。题解:先求的next数组,然后,len-next[len]的值为最小循环节。所以,如果len能够整出这个循环节,则已经构成了循环了,...
分类:
其他好文 时间:
2015-07-15 16:40:15
阅读次数:
118
题目大意:有一串字符串,现在有一种转换规则,如果字符串中出现循环的子串,可以将其转化为 :子串数量(子串)
现在问这个字符串的最短长度解题思路:区间dp,然后分类讨论,这题的难点是如何再进行缩减
将情况分为两种
一种是区间刚好符合缩减情况的,找出该区间的循环节,看能否继续缩减即可
另一种情况就是普通的区间DP了#include
#include
#inc...
分类:
其他好文 时间:
2015-07-13 22:30:01
阅读次数:
161