1. 程式人生 > >2018年東北農業大學春季校賽 K wyh的數列

2018年東北農業大學春季校賽 K wyh的數列

連結:點選開啟連結

題目描述

wyh學長特別喜歡斐波那契數列,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2)

一天他突發奇想,想求F(a^b)%c

輸入描述:

輸入第一行一個整數T(1<=T<=100),代表測試組數
接下來T行,每行三個數 a,b,c (a,b<=2^64) (1<c<1000)

輸出描述:

輸出第a^b項斐波那契數對c取餘的結果
示例1

輸入

3
1 1 2
2 3 1000
32122142412412142 124124124412124 123

輸出

1
21
3

解題思路: 你先找住來斐波那契陣列在對某個c取餘後經歷一個輪迴所需要的次數,我們設為te

a^b=(a%te)^(b%te) 這樣化簡

然後來一波快速冪就行了。

如果a等於0或者是c等於1的時候 答案為0(題沒考慮到);

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=1e7+10;
long long dp[maxn],n,m;
long long a,b,c;
int main(){
	int i,j,t;
	scanf("%d",&t);
	while(t--){
		scanf("%lld%lld%lld",&a,&b,&c);
		if(a==0||c==1){
			printf("0\n");continue;
		}
		long long te;
		dp[0]=0;dp[1]=dp[2]=1;
		for(i=3;i<maxn;i++){
			dp[i]=(dp[i-1]+dp[i-2])%c;
			if(dp[i]%c==1&&dp[i-1]%c==1){
				te=i-2;
				break;
			}
		}
		long long temp=b%te,ans=1,q=a%te;
		while(temp){
			if(temp&1) ans=(ans*q%te)%te;
			q=(q*q)%te;
			temp/=2;
		}
		if(ans==0) ans=te;
		printf("%lld\n",dp[ans]%c);
	}
	return 0;
} 
//3 1 1 2 2 3 1000 32122142412412142 124124124412124 123

相關推薦

2018東北農業大學春季 K wyh數列

連結:點選開啟連結題目描述 wyh學長特別喜歡斐波那契數列,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2) 一天他突發奇想,想求F(a^b)%c 輸入描述:輸入第一行一個整數T(1<=T<=100),代表測試組數 接下來

2018東北農業大學春季 K-why的數列(斐波那契數列迴圈節)

連結:https://www.nowcoder.com/acm/contest/93/K來源:牛客網題目描述 wyh學長特別喜歡斐波那契數列,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n

2018東北農業大學春季 B wyh的矩陣【規律】

題目連結 思路 先加入 中間的那行 和中間的那列 再減去 最中間那個數 因為它 加了兩次 然後逐行往下加 會發現是一個三角形 然後下面是一個對稱的三角形 注意一下 不要反覆加 就可以了

2018東北農業大學春季 Kwyh數列

題意:  斐波拉契數列f[0]=0、f[1]=1 , f[n]=f[n-1]+f[n-2](n>=2);求f[a^b]%c.(a、b<=2^64、2<=c<=1000)***因為

2018東北農業大學春季D wyh的迷宮

給你一個n*m的迷宮,這個迷宮中有以下幾個標識: s代表起點 t代表終點 x代表障礙物 .代表空地 現在你們涵哥想知道能不能從起點走到終點不碰到障礙物(只能上下左右進行移動,並且不能移動到已經移動過的點)。 輸入描述:輸入第一行一個整數T(1<=T<=1

2018東北農業大學春季 B wyh的矩陣 【規律】

連結:https://www.nowcoder.com/acm/contest/93/B #include<bits/stdc++.h> using namespace std; #define ll long long int main() { int

2018東北農業大學春季 L-wyh 【線段樹】

題目描述  你們wyh學長小時候住在河邊,因為周圍的生態環境非常好,所以經常會有天鵝浮在湖面上,每隻天鵝都長得不一樣,它們偶爾排成一排,偶爾分散開,偶爾也會去其他河畔,wyh學長為了統計它們的個數,編了一個程式賦予它們一個“萌”值,但是這些天鵝很不聽話,一會兒會從別的地方游

2018東北農業大學春季 題解

【題目連結】 寫在前面:從都到尾做了一下這場比賽,似乎好題都是原題,水題都是他們學校自己出的。原題在抄過來的過程中,很多題目的題面、資料範圍都出了問題,還有題目資料很水。建議以後這樣的比賽不要掛到外面來了,不然別人會罵你們學校不負責任的... ... 吐槽: 1. 牛客網題面上輸入順序寫

動態規劃--dp--2018東北農業大學春季J

來源:牛客網 我國現在能源消耗非常嚴重,現在政府有這樣一個工作,每天早上都需要把一些路燈關掉,但是他們想讓在關閉的過程中所消耗的能源是最少的,負責路燈關閉的工作人員以1m/s的速度進行行走,假設關閉路燈的時候不需要花費任何的時間,請你編寫一個程式,計算在給定路燈位置和每個

2018東北農業大學春季

【題目】 A wyh的曲線 10/51 未通過 學一下求曲線長度? B wyh的矩陣 461/1355 通過 規律題方便打表的先打表再推 C wyh的商機 12/31 未通過 離線LCA? D wyh的迷宮

2018東北農業大學春季 B題題解

#include<iostream> #include<algorithm> using namespace std; int main() { long long t,n;cin>>t; long long sum=0;

2018東北農業大學春季H題wyh的吃雞

題目描述 最近吃雞遊戲非常火,你們wyh學長也在玩這款遊戲,這款遊戲有一個非常重要的過程,就是要跑到安全區內,否則就會中毒持續消耗血量,我們這個問題簡化如下假設地圖為n*n的一個圖,圖中有且僅有一塊X的聯通快代表安全區域,有一個起點S代表縮圈的時候的起點,圖中C代表的是車(保

2018東北農業大學春季:L-wyh的天鵝(Treap)

題意:插入元素,刪除元素,查詢第K大。題解:Treap。#include <bits/stdc++.h> using namespace std; #define Lc (o -> Ch[0]) #define Rc (o -> Ch[1]) #de

2018東北農業大學春季 B

連結:https://www.nowcoder.com/acm/contest/93/B來源:牛客網時間限制:C/C++ 1秒,其他語言2秒空間限制:C/C++ 262144K,其他語言524288K 64bit IO Format: %lld題目描述 給你一個n*n矩陣,

2018東北農業大學春季 H why的吃雞

連結:點選開啟連結題目描述 最近吃雞遊戲非常火,你們wyh學長也在玩這款遊戲,這款遊戲有一個非常重要的過程,就是要跑到安全區內,否則就會中毒持續消耗血量,我們這個問題簡化如下 假設地圖為n*n的一個圖,圖中有且僅有一塊X的聯通快代表安全區域,有一個起點S代表縮圈的時

2018東北農業大學春季-A:wyh的曲線(Simpson)

時間限制:C/C++ 1秒,其他語言2秒空間限制:C/C++ 262144K,其他語言524288K64bit IO Format: %lld題目描述給你三組數列,分別為現在給你一個式子:然後我們可以將

2018東北農業大學春季——why的數字

題目描述 wyh學長十分鐘愛數字‘7’,他想知道每一個數字中有多少個數字‘7’ 輸入描述: 輸入第一行一個整數T(1<=T<=10) 接下來有T組測試資料,對於每組測試資料,輸

東北農業大學春季——wyh的數字(輸出各位上數字)

輸入描述: 輸入第一行一個整數T(1<=T<=10) 接下來有T組測試資料,對於每組測試資料,輸入一個整數n(1<=n<=10000000000) 輸出描述: 對於每組測試資料

2018東北】UPC-7226 Memory Banks(模擬儲存)

題目描述 We have purchased 60 different types of memory banks, typed as 0 to 59, A bank of type i has 2i

2018山東大學acmB

YangFan is a wayward boy who likes to count in his own way.The number he writes may be 0 or 1 for each digit, and the last non-zero digit may be 2, and the