跳到主要内容

题解:CF2033F Kosuke's Sloth

· 阅读需 1 分钟
lailai
Blogger

原题链接

参考资料

题意简述

求 Fibonacci 数列中第 nn 个能被 kk 整除的数的下标。

解题思路

Fibonacci 数列对 kk 取模具有周期性(皮萨诺周期),且周期 r6kr\le 6k

暴力枚举求出周期 rr,则第 nn 个数的下标为 rnrn

参考代码


#include <bits/stdc++.h>
using namespace std;

using ll=long long;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin>>T;
while(T--)
{
ll n,k;
cin>>n>>k;
n%=mod;
if(k==1)
{
cout<<n<<'\n';
continue;
}
int f1=1,f2=1,f3=1;
ll cnt=2;
while(f3!=0)
{
f3=(f1+f2)%k;
f1=f2;
f2=f3;
cnt++;
}
cout<<cnt*n%mod<<'\n';
}
return 0;
}