Colossal Fibonacci Numbers!

阅读: 评论:0

Colossal Fibonacci Numbers!

Colossal Fibonacci Numbers!

题意

给定a,b,c.求fib(a ^ b) % c

显然a ^ b 非常大,而且直接fib(a ^ b)是行不通的

解题背景

  1. 我们首先知道(1 到 n) % m,在n足够的的时候会出现循环的。当对m取模的时候最大在 m*m之前会出现循环。
  2. 我们知道(m + n) % mod == (m % mod + n % mod) % mod;
  3. 所以可得fib[n] % mod = (fib[n - 1] % mod + fib[n - 2] % mod) % mod;

解题思路

1.首先在 1 ~ n * n 之间 算出 fib[i],在判断 fib[i] == fib[1] && fib[i - 1] == fib[0],如果符合条件。那 么i - 1 就是fib数列的周期。(为什么只要判断前两项就可以知道后面是重复的呢??因为fib[i]只与前面的两项有关,那么前面两项确定以后,整个的后面就确定了).其中该fib数列的周期为 i - 1;

2.利用gcd(a % (i - 1),b,i - 1)算出a ^ b是在fib数列的第几项,(注意一定要mod一下,不然会 wa)。结果为fib[gcd(a % (i - 1),b,i - 1)]

3.注意特判一下 if(a == 0 || c == 1)res = 0;

本文发布于:2024-01-29 06:22:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170648053213322.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:colossal
下一篇:使用Colossal
标签:Colossal   Fibonacci   Numbers
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23