标签:
题意:输入两个非负整数a、b和正整数n(a,b>=0&&a,b<2^64,n>=1&&n<=1000),你的任务是计算f(a^b)除以n的余数。其中f(0)=f(1),且对于所有非负整数i,f(i+2)=f(i+1)+f(i)
解题思路:设F(i)=f(i) mod n。不难发现当(F(i),F(i+1))重复出现时,整个序列就开始重复。所以我们需要找到对于不同的n重复周期,因为余数有n中,所以最多n^2项就会出现重复(其实我们也可以通过打表观察,在n<=1000时大多数数据基本上用不到n^2).然后只需计算出F(0)~F(n^2)即可。
版权声明:本文为博主原创文章,未经博主允许不得转载。
uva11582 Colossal Fibonacci Numbers(分治法)
标签:
原文地址:http://blog.csdn.net/mengxingyuanlove/article/details/47375145