Uva 11582 巨大的斐波那契數 模運算

2022-04-01 07:18:12 字數 810 閱讀 4612

題意:計算 f(a^b)%n

分析:1、斐波那契數列是 f(i+2) = f(i+1) + f(i)

2、詢問次數是10^4,打表處理;設 f(n,i) 是 f(i) %n 的餘數;

3、根據模運算可以知道:f(n,i) = ( f(n,i-1) + f(n,i-2) ) % n;

4、 a^b的處理了,a,b<2^64,資料很大,但是可以發現乙個特徵,n很小;取值範圍很小;可以看其週期性;

5、a^b 對 %n 的週期,的快速冪取模了;

1 #include 2

3using

namespace

std;45

const

int maxn = 1000 + 5

;6 typedef unsigned long

long

ull;78

int pow_mod(ull a,ull b,int

n) 15

16int f[maxn][maxn*6

],period[maxn];

1718

int solve(ull a,ull b,int

n) 23

24int

main()

2536}37

}3839ull a,b;

40int

n,t;

41 scanf("

%d",&t);

42while(t--)

4647

4849

return0;

50 }

view code

UVa 11582 巨大的斐波那契數!(冪取模)

題意 輸入兩個非負整數a b和正整數n,你的任務是計算f a b 除以n的餘數。f 0 0,f 1 1,f i 2 f i 1 f i 思路 因為餘數最多n種,所以最多n 2項就會出現重複。計算出週期,之後冪取模算出週期內的第幾個數。1 include 2 include 3 include 4 i...

uva11582 斐波拉切數列迴圈節 尤拉定理降冪

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 v...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...