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[]]这个值出现过,则已被标记,代表找到开始的标志数;优秀优秀。。。
而且由于数组可以大,所以不会轻易开不下(存储值);