UVa 10229 - Modular Fibonacci(数论,规律)
2013-07-24 19:03
393 查看
DC翻出以前做的好多题,其中这个题让DC纠结了一段时间,因为乍眼一看没有任何思路,看代码也没什么想法,然后在纸上算了算,突然想起以前的计算过程,然后豁然开朗
DC总结的规律:fib数列对2^m取模的循环节为3*(2^(m-1))
#include <stdio.h>
using namespace std;
int fib[22][2000000];
int main()
{
int m,n;
for(int i=1;i<=20;i++)
{
fib[i][0]=0;
fib[i][1]=1;
int k=1<<i;
for(int j=2;j<3*(1<<i-1);j++)
fib[i][j]=((fib[i][j-1])%k+(fib[i][j-2])%k)%k;
}
while(scanf("%d%d",&n,&m)==2)
{
if(!m) printf("0\n");
else
printf("%d\n",fib[m][n%(3*(1<<m-1))]);
}
return 0;
}
DC总结的规律:fib数列对2^m取模的循环节为3*(2^(m-1))
#include <stdio.h>
using namespace std;
int fib[22][2000000];
int main()
{
int m,n;
for(int i=1;i<=20;i++)
{
fib[i][0]=0;
fib[i][1]=1;
int k=1<<i;
for(int j=2;j<3*(1<<i-1);j++)
fib[i][j]=((fib[i][j-1])%k+(fib[i][j-2])%k)%k;
}
while(scanf("%d%d",&n,&m)==2)
{
if(!m) printf("0\n");
else
printf("%d\n",fib[m][n%(3*(1<<m-1))]);
}
return 0;
}
相关文章推荐
- Colossal Fibonacci Numbers! UVA - 11582 (数论,幂求模,规律周期)
- UVa11582 - Colossal Fibonacci Numbersl (打表找规律)
- Uva11582 Colossal Fibonacci Numbers! (数论、斐波那契循环节)
- POJ2407 ZOJ1906 UVA10229 Relatives【欧拉函数+数论】
- 找规律(约瑟夫的数论问题,uva 1363)
- 【数论】Colossal Fibonacci Numbers!, UVa11582
- UVa11582 Colossal Fibonacci Numbers!(斐波那契数列小规律+思维)
- UVA-11582-Colossal Fibonacci Numbers!(规律+幂取模)
- UVA 10519 - !! Really Strange !!(数论,规律)
- 紫书数论例题10-5 uva 12716 找规律
- UVa 10940 - Throwing cards away II(数论,规律)
- UVA 11582 - Colossal Fibonacci Numbers!(数论)(分治法幂取模)
- 【数论 && 找规律】UVA 11752 The Super Powers
- UVA 12716 GCD XOR (数论,规律)
- UVA 550 Multiplying by Rotation 数论的规律
- UVA 11582 Colossal Fibonacci Numbers!(数论)
- 数论 - 高精度Fibonacci数 --- UVa 10183 : How Many Fibs ?
- UVA 12050 - Palindrome Numbers(数论+规律)
- 数论 - 高精度Fibonacci数 --- UVa 10183 : How Many Fibs ?
- 【数论,找规律】Uva 11526 - H(n)