将无限小数化为分数,有一套简单的公式。使其轻松表示出来。循环节例如:0.121212……循循环节为12。公式这个公式必须将循环节的开头放在十分位。若不是可将原数乘10^x(x为正整数)就为:12.121212……-0.121212……=12100倍 - 1倍 =99 (99和12之间一条分数线)此公...
分类:
其他好文 时间:
2015-03-13 22:10:31
阅读次数:
172
思路挺简单的,题目中的每个命令(包括命令的逆)相当于一个置换。用O(n2k)的时间复杂度从右往左求出这些置换的乘积A,然后求m使Am = I(I为全等置换)还是先把A分解循环,m则等于所有循环节长度的最小公倍数。需要注意的是:执行命令是从右往左执行的,这是题目中说的=_=其他命令还好,mix那个命令...
分类:
其他好文 时间:
2015-03-13 00:13:04
阅读次数:
319
题意就是将所给的字符串变成多个完整的循环(至少两个),然后给出最少需要添加的字符数。http://www.cnblogs.com/wuyiqi/archive/2012/01/06/2314078.html 1 #include 2 #include 3 #include 4 #include 5 ...
分类:
其他好文 时间:
2015-03-13 00:09:07
阅读次数:
146
首先要知道一个姿势,对于Fib数列这类的东西,只要取余就一定会出现循环节。所以上来就直接暴力打表找规律就好了。
MOD = 1000000007 发现循环节是 222222224。
MOD = 2222222227 发现循环节是 183120
然后这个问题就解决了。
不要问我为啥会出现循环节,我也不会证明。。。
#include
#include
#include
#include...
分类:
其他好文 时间:
2015-03-11 19:49:38
阅读次数:
269
KMP求最短循环节的应用
//2100 KB 218 ms
#include
#include
#include
#include
using namespace std;
#define M 100000+1000
char str[M];
int next2[M];
int len;
void getnext()
{
len=strlen(str);
int i=0,j;...
分类:
其他好文 时间:
2015-03-10 21:33:53
阅读次数:
116
照例传送门CNUOJ - 0385:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=355题目分析:首先感谢”数据结构与算法“群群友的支持与鼓励,没有你们的点拨&鼓励我不可能搞出来的。这道题如果是暴力枚举循环节的话,可能数据会坑你一下...
分类:
其他好文 时间:
2015-03-08 20:05:16
阅读次数:
180
题意:输入一个n,计算ans= 1^n+2^n+3^n+4^n ,输出ans末尾几个0。
做法:规律题,刚开始暴力,看了下规律,发现最多末尾只会有2个零。而且有一定规律。所以可以找循环节,n%20。 或者用快速幂,我用快速幂,循环了一遍1到300000,发现确实末尾最多只有两个0,所以。。。...
分类:
其他好文 时间:
2015-03-07 20:02:28
阅读次数:
183
题目链接:BZOJ - 1025题目分析显然的是,题目所要求的是所有置换的每个循环节长度最小公倍数的可能的种类数。一个置换,可以看成是一个有向图,每个点的出度和入度都是1,这样整个图就是由若干个环构成,这些环的长度和为 n 。因此,就是要求出和为 n 的正整数的最小公倍数的可能情况。有一个性质:这些...
分类:
其他好文 时间:
2015-03-07 13:52:22
阅读次数:
142
题目意思:http://acm.hdu.edu.cn/showproblem.php?pid=1061求N^N的最后一位数。题目分析:此题有非常多种方法,主要是中循环节,看自己怎么找了。我的方法是找到全部个位数(0~9)数的循环节,详见代码。AC代码:/** *全部数的循环节是12 */#inclu...
分类:
其他好文 时间:
2015-03-01 11:42:52
阅读次数:
126
嗯...用到一个定理,对于一个最简分数n/d,d=(2^x)*(5^y)*m,m≠1,那么其循环节长度为使10^L mod m==1的最小的L,不循环长度为max(x,y)然后这题就没什么了。。76个字符一换行比较坑,我用了stringstream... 1 #include 2 #include ...
分类:
其他好文 时间:
2015-02-25 12:56:13
阅读次数:
137