UVa 11582 Colossal Fibonacci Numbers! 紫书
思路是按紫书上说的来。
参考了:https://blog.csdn.net/qwsin/article/details/51834161 的代码;
- #include <cstdio>
- #include <iostream>
- #include <cmath>
- using namespace std;
- typedef unsigned long long ll;
- const int MAXN=+;
- ll a, b;
- int n,M;
- int f[MAXN*MAXN];
- int pow_mod(ll p, ll q, int Mod)
- {
- if(!q) return ;
- int x = pow_mod(p, q/, Mod);
- int ans = x*x % Mod;
- if(q%)
- ans = ans*p % Mod;
- return ans;
- }
- void solve()
- {
- cin>>a>>b>>n;
- if(n== || a==)
- {
- printf("0\n");
- return ;
- }
- f[]=; f[]=;
- int t=n*n;
- for(int i=; i<=t+; i++)
- {
- f[i]=(f[i-]+f[i-])%n;
- if(f[i]==f[] && f[i-]==f[])
- {
- M=i-;
- break;
- }
- }
- int k = pow_mod(a%M, b, M);
- cout<<f[k]<<endl;
- }
- int main()
- {
- int T;
- cin>>T;
- while(T--)
- solve();
- return ;
- }
代码中的ll改成ull比较合适。
注意第30行的初始值,我因为f[0]=1 卡了好几个小时。
另一种是LRJ的代码,为了方便大家看,我直接copy过来了。
- // UVa11582 Colossal Fibonacci Numbers!
- // Rujia Liu
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- using namespace std;
- const int maxn = + ;
- typedef unsigned long long ULL;
- int f[maxn][maxn*], period[maxn];
- int pow_mod(ULL a, ULL b, int n) {
- if(!b) return ;
- int k = pow_mod(a, b/, n);
- k = k * k % n;
- if(b % ) k = k * a % n;
- return k;
- }
- int solve(ULL a, ULL b, int n) {
- if(a == || n == ) return ; // attention!
- int p = pow_mod(a % period[n], b, period[n]);
- return f[n][p];
- }
- int main() {
- for(int n = ; n <= ; n++) {
- f[n][] = ; f[n][] = ;
- for(int i = ; ; i++) {
- f[n][i] = (f[n][i-] + f[n][i-]) % n;
- if(f[n][i-] == && f[n][i] == ) {
- period[n] = i - ;
- break;
- }
- }
- }
- ULL a, b;
- int n, T;
- cin >> T;
- while(T--) {
- cin >> a >> b >> n;
- cout << solve(a, b, n) << "\n";
- }
- return ;
- }
其实大体上差不多,不过LRJ的关键代码是用二维数组,全部先列举出来。
UVa 11582 Colossal Fibonacci Numbers! 紫书的更多相关文章
- UVA 11582 Colossal Fibonacci Numbers(数学)
Colossal Fibonacci Numbers 想先说下最近的状态吧,已经考完试了,这个暑假也应该是最后刷题的暑假了,打完今年acm就应该会退了,但是还什么都不会呢? +_+ 所以这个暑假,一定 ...
- UVa 11582 Colossal Fibonacci Numbers! 【大数幂取模】
题目链接:Uva 11582 [vjudge] watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fil ...
- UVa #11582 Colossal Fibonacci Numbers!
巨大的斐波那契数 The i'th Fibonacci number f (i) is recursively defined in the following way: f (0) = 0 and ...
- UVA 11582 Colossal Fibonacci Numbers! 大斐波那契数
大致题意:输入两个非负整数a,b和正整数n.计算f(a^b)%n.其中f[0]=f[1]=1, f[i+2]=f[i+1]+f[i]. 即计算大斐波那契数再取模. 一开始看到大斐波那契数,就想到了矩阵 ...
- UVa 11582 - Colossal Fibonacci Numbers!(数论)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA 11582 Colossal Fibonacci Numbers!【数学】
大一刚开始接触ACM就买了<算法竞赛入门经典>这本书,当时只能看懂前几章,而且题目也没做,粗鄙地以为这本书不适合自己.等到现在快大三了再回过头来看,发现刘老师还是很棒的! 扯远了... 题 ...
- UVA 11582 Colossal Fibonacci Numbers!(循环节打表+幂取模)
题目链接:https://cn.vjudge.net/problem/UVA-11582 /* 问题 输入a,b,n(0<a,b<2^64(a and bwill not both be ...
- UVA - 11582 Colossal Fibonacci Numbers! (巨大的斐波那契数!)
题意:输入两个非负整数a.b和正整数n(0<=a,b<264,1<=n<=1000),你的任务是计算f(ab)除以n的余数,f(0) = 0, f(1) = 1,且对于所有非负 ...
- Colossal Fibonacci Numbers! UVA 11582 寻找循环节
/** 题目:Colossal Fibonacci Numbers! UVA 11582 链接:https://vjudge.net/problem/UVA-11582 题意:f[0] = 1, f[ ...
随机推荐
- Django模板层2
一.单表操作 1.1 开启test from django.test import TestCase import os # Create your tests here. if __name__ = ...
- Spring基础16——使用FactoryBean来创建
1.配置bean的方式 配置bean有三种方式:通过全类名(class反射).通过工厂方法(静态工厂&实例工厂).通过FactoryBean.前面我们已经一起学习过全类名方式和工厂方法方式,下 ...
- 四、续绑定SignaIR的用户管理-(添加好友和消息盒子)
一.聊天消息表(普通消息,申请消息,群聊消息) CREATE TABLE MSG_INFO ( MSG_Id INT PRIMARY KEY AUTO_INCREMENT, -- 消息标识 MSG_T ...
- MyBatis中批量insert
在orcale和mybatis执行批量插入是不一样的. orcale如下:(这里要注意的是:useGeneratedKeys="false" ) 方式1:oracle批量插入使用 ...
- 大数据数据库HBase(一)——架构原理
一.HBase简介 1.1.Hadoop生态系统 1.2.非关系型数据库知识面扩展 Cassandra hbase mongodb Couchdb,文件存储数据库 Neo4j非关系型图数据库 1.3 ...
- 使用pycharm编写自动化脚本
1.:导入本地Python环境 2:安装Selenium 3:下来需要根据安装的浏览器版本,下载合适的chromedriver驱动程序. 4:接着需要将下载的chromedriver进行解压,并将文件 ...
- linux extglob模式 和rm反选,除了某个文件外的其他文件全部删除的命令
1.extglob模式开启之后Shell可以另外识别出5个模式匹配操作符,能使文件匹配更加方便. 不然不识别 #开启命令: shopt -s extglob #关闭命令: shopt -u extgl ...
- BZOJ 2560: 串珠子 (状压DP+枚举子集补集+容斥)
(Noip提高组及以下),有意者请联系Lydsy2012@163.com,仅限教师及家长用户. 2560: 串珠子 Time Limit: 10 Sec Memory Limit: 128 MB Su ...
- python 导入模块、包
1. 模块:一个有逻辑的python文件,包含变量.函数.类等.2. 包:一个包含__init__.py的文件夹,存放多个模块 import 本质是路径搜索,查找sys.path下有无你导入的 pac ...
- Flask【第6篇】:Flask中的信号
补充的flask实例化参数以及信号 一.实例化补充 instance_path和instance_relative_config是配合来用的.这两个参数是用来找配置文件的,当用app.config.f ...