https://vjudge.net/problem/UVA-11582 首先明确,斐波那契数列在模c的前提下是有循环节的.而f[i] = f[i-1]+f[i-2](i>=2)所以只要有两个连续的值和开头的一样,后面就开始循环,两两组合共有c*c种. 找到循环节之后 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib…
链接:传送门 题意:给一个 n ,输出 Fibonacci 数列第 n 项,如果第 n 项的位数 >= 8 位则按照 前4位 + ... + 后4位的格式输出 思路: n < 40时位数不会超过8位,直接打表输出 n >= 40 时,需要解决两个问题 后 4 位可以用矩阵快速幂求出,非常简单 前 4 位的求法借鉴 此博客! balabala:真是涨姿势了-- /****************************************************************…
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; ; //如果是1005就会RE,当不确定时,最好取大点. int A[maxn]; #define LL unsigned long long // 注意不能用long long, 因为long long // 最大值只能取到2 ^63 - 1 LL a, b; int…
这是个开心的题目,因为既可以自己翻译,代码又好写ヾ(๑╹◡╹)ノ" The i’th Fibonacci number f(i) is recursively defined in the following way: • f(0) = 0 and f(1) = 1 • f(i + 2) = f(i + 1) + f(i) for every i ≥ 0 Your task is to compute some values of this sequence. Input Input begins…
思路是按紫书上说的来. 参考了:https://blog.csdn.net/qwsin/article/details/51834161  的代码: #include <cstdio> #include <iostream> #include <cmath> using namespace std; typedef unsigned long long ll; +; ll a, b; int n,M; int f[MAXN*MAXN]; int pow_mod(ll p…
Colossal Fibonacci Numbers 想先说下最近的状态吧,已经考完试了,这个暑假也应该是最后刷题的暑假了,打完今年acm就应该会退了,但是还什么都不会呢? +_+ 所以这个暑假,一定要竭尽全力地去刷题,当然,也是能好好刷题的最后时间了. [题目链接]Colossal Fibonacci Numbers [题目类型]数学 &题意: 求Fi(f(a^b)%n) Fi()是斐波那契 &题解: 注意:unsigned时 要把%d全换成%u 数学大法好. 首先你要能看出来这是有循环…
/** 题目:Colossal Fibonacci Numbers! UVA 11582 链接:https://vjudge.net/problem/UVA-11582 题意:f[0] = 1, f[1] = 1; 给定一个n,求f[a^b]%n的结果.a,b达到2^64 - 1大. 思路:a,b很大,用无符号长整型;我还是太菜了,自己没想出来.这道题很显然是找循环节的题.但我不知怎么找. lrj P316 思路就是,由于fibonacci数是由前两个数相加得来,又%n;所以所有fibonacc…
Tom and matrix Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5226 Mean: 题意很简单,略. analyse: 直接可以用Lucas定理+快速幂水过的,但是我却作死的用了另一种方法. 方法一:Lucas定理+快速幂水过 方法二:首先问题可以转化为求(0,0),(n,m)这个子矩阵的所有数之和.画个图容易得到一个做法,对于n<=m,答案就是2^0+2^1+...+2^m=2^(m+1)-1,对于n>m…
Problem Description The i’th Fibonacci number f(i) is recursively defined in the following way: •f(0) = 0 and f(1) = 1 •f(i + 2) = f(i + 1) + f(i) for every i ≥ 0 Your task is to compute some values of this sequence Input Input begins with an integer…
题意: 斐波那契数列f(0) = 0, f(1) = 1, f(n+2) = f(n+1) + f(n) (n ≥ 0) 输入a.b.n,求f(ab)%n 分析: 构造一个新数列F(i) = f(i) % n,则所求为F(ab) 如果新数列中相邻两项重复出现的话,则根据递推关系这个数列是循环的. 相邻两项所有可能组合最多就n2中,所以根据抽屉原理得到这个数列一定是循环的. 求出数列的周期,然后快速幂取模即可. #include <cstdio> #include <iostream>…