当前位置: 首页 > news >正文

UVA - 11582 Colossal Fibonacci Numbers!(找循环节)

题目链接


首先紫书上描述有误, f ( 0 ) = 0 , f ( 1 ) = 1 f(0)=0,f(1)=1 f(0)=0,f(1)=1

关于循环节的最大寻找长度,紫书上解释说余数最多 n n n种,那么最多 n 2 n^2 n2项就会出现重复。我一开始觉得这是一个组合数学的问题,但是想了想觉得中间有递推关系,严格的证明不会。但是数学规律题一般都能取巧的,我们可以把 n n n 1 − 1000 1-1000 11000所有的周期打个表,然后找下最大的即可

吐槽下此题玄学RE,2e6也RE,搞吐了

#include <set>
#include <map>
#include <stack>
#include <queue>
#include <math.h>
#include <cstdio>
#include <string>
#include <bitset>
#include <cstring>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ins insert
#define lowbit(x) (x&(-x))
#define mkp(x,y) make_pair(x,y)
#define mem(a,x) memset(a,x,sizeof a);
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
typedef pair<int,int> P;
const double eps=1e-8;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const ll INF=1e18;
const int Mod=1e9+7;
const int maxn=1007;

int f[maxn*maxn];
int m;

void init(int n){
    f[0]=0,f[1]=1%n;
    for(int i=2;i<n*n+10;i++){
        f[i]=(f[i-1]+f[i-2])%n;
        if(f[i-1]==f[0] && f[i]==f[1]){
            m=i-1;
            break;
        }
    }

}

ull quick_pow(ull x,ull n,int p){
    ull ans=1;
    while(n){
        if(n&1) ans=ans*x%p;
        x=x*x%p; //如果不传入x%m这里会溢出
        n>>=1;
    }
    return ans;
}

int main(){
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t,n;
    ull a,b;
    cin>>t;
    while(t--){
        cin>>a>>b>>n;
        init(n);
        cout<<f[quick_pow(a%m,b,m)]<<endl;
    }
    return 0;
}

相关文章:

  • UVA - 12169 Disgruntled Judge(枚举+扩展欧几里得)
  • ASM管理命令和操作笔记
  • UVA - 10791 Minimum Sum LCM(质因数分解)
  • 删除ASM残留信息方法和重建步骤
  • UVA - 12716 GCD XOR(找规律+枚举技巧)
  • Oracle 修改归档模式
  • UVA - 1635 Irrelevant Elements(质因数分解)
  • spfile和pifle的一点浅浅的认识
  • 欧拉函数
  • UVA - 1636 Headshot(条件概率)
  • Oracle RAC日常基本维护命令
  • UVA - 11181 Probability|Given(条件概率+状压dfs)
  • UVA - 1637 Double Patience(全概率+记忆化搜索)
  • Oracle检查对象[第八章笔记]
  • 魔法数字(dfs/bfs)
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • canvas 高仿 Apple Watch 表盘
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • IOS评论框不贴底(ios12新bug)
  • Java教程_软件开发基础
  • leetcode386. Lexicographical Numbers
  • Odoo domain写法及运用
  • PHP 7 修改了什么呢 -- 2
  • ReactNative开发常用的三方模块
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue.js框架原理浅析
  • win10下安装mysql5.7
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 今年的LC3大会没了?
  • 前端学习笔记之观察者模式
  • 少走弯路,给Java 1~5 年程序员的建议
  • 提醒我喝水chrome插件开发指南
  • 在weex里面使用chart图表
  • Mac 上flink的安装与启动
  • 回归生活:清理微信公众号
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #{}和${}的区别?
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ... 是什么 ?... 有什么用处?
  • .gitattributes 文件
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET中 MVC 工厂模式浅析
  • .net专家(高海东的专栏)
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)