UVA - 11582 Colossal Fibonacci Numbers!循环节

找Fn =( Fn-1 + Fn-2 ) mod n 的循环节

暴力找即可

复制代码
 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cstring>
 4 typedef unsigned long long ll;
 5 using namespace std;
 6 const int MAXN = 1023;
 7 ll f[MAXN][MAXN*10];
 8 int circle[MAXN];
 9 
10 void init(){
11     for(int k = 2; k<= 1000; k++){
12         f[k][0] = 0, f[k][1] = 1;
13         for(int i = 2; ; i++){
14             f[k][i] = (f[k][i-1] + f[k][i-2])%k;
15             if(f[k][i] == 1 && f[k][i-1] == 0){
16                 circle[k] = i-1;
17                 break;
18             }
19         }
20     }
21 }
22 ll quick_mod(ll a, ll b, ll mod){
23     ll ans = 1;
24     while(b > 0){
25         if(b&1){
26             b--;
27             ans = ans*a%mod;
28         }
29         b >>= 1;
30         a = a*a%mod;
31     }
32     return ans;
33 }
34 void slove(ll a, ll b, int n){
35     int res = quick_mod(a%circle[n], b, circle[n]);
36     cout << f[n][res] << endl;
37 }
38 int main() {
39     //freopen("data.in.txt", "r", stdin);
40    // freopen("data.out.txt", "w", stdout);
41     int t, n;
42     ll a, b;
43     init();
44     scanf("%d", &t);
45     while(t--) {
46         cin >> a >> b >> n;
47         if(n == 1 || a == 0) cout<<0 << endl;;
48         else slove(a, b, n);
49     }
50     return 0;
51 }
复制代码

 

posted on   disppr  阅读(166)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· .NET Core GC压缩(compact_phase)底层原理浅谈
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示