hdu1005,循环节

一看感觉用矩阵快速幂的题。。。奈何没有优化n=1e9是不可能过的。

循环节,周期:

因为mod7,所以f[n]的可能性只有7种,f[n]*f[n-1]有49种(因为AB是固定的)。。。所以,49个f[n]求出来后必有重复者出现,即f[n]与f[n-1]与之前的某个f[i[与f[i-1]能相等。。。然后由于f[n+1]与f[n]和f[n-1]有关,所以一定会出现周期。。。注意点是周期未必是49,起始点未必是1 1.。。所以需要求这两个。

一个特别优秀的算法。。。

用k[f[]f[]]这个方式特别简洁。。。也意味着平时可以思考用数组嵌套数组

另外,我自己的是算出新的f[n]去与之前的所有数比较是否相同。。。耗时

这个代码是标记之前出现的所有值,然后如果k[f[]]这个值出现过,则已被标记,代表找到开始的标志数;优秀优秀。。。

而且由于数组可以大,所以不会轻易开不下(存储值);

 

posted on 2018-09-25 22:31  larvie  阅读(187)  评论(0编辑  收藏  举报

导航