题面
题意给出n个a,问LCM{ f(a) },f为斐波那契数。

知乎靠谱的题解

记住这两个路人性质就好
①容斥求LCM

lcm{S}=∏T⊆S,T≠∅gcd{T}(−1)|T|+1lcm{S}=∏T⊆S,T≠∅gcd{T}(−1)|T|+1

\text{lcm}\{S\}=\displaystyle\prod_{T\subseteq S,T\ne \,\emptyset} \gcd\{T\}^{(-1)^{|T|+1}}
②对多个数也成立

gcd(fn,fm)=fgcd(n,m)gcd(fn,fm)=fgcd(n,m)

\gcd(f_n,f_m)=f_{\gcd(n,m)}

#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <ctime>
#include <cstdio>
#include <cstdlib>
#include <cstring>using namespace std;
#define mmst(a, b) memset(a, b, sizeof(a))
#define mmcp(a, b) memcpy(a, b, sizeof(b))typedef long long LL;const LL mo=1e9+7;
const int N=1010000;int n;
LL ans=1,f[N],g[N];
bool b[N];LL cheng(LL a,LL b)
{LL res=1;for(;b;b>>=1,a=a*a%mo)if(b&1)res=res*a%mo;return res;
}int main()
{g[1]=f[1]=1;for(int i=2;i<N;i++)f[i]=(f[i-1]+f[i-2])%mo,g[i]=f[i];for(int i=2;i<N;i++){LL inv=cheng(g[i],mo-2);for(int j=i+i;j<N;j+=i)g[j]=g[j]*inv%mo;}cin>>n;for(int i=1;i<=n;i++){int x;scanf("%d",&x);b[x]=1;}for(int i=1;i<N;i++){bool ok=0;for(int j=i;j<N;j+=i)if(b[j]){ok=true;break;}if(ok)ans=ans*g[i]%mo;}cout<<ans<<endl;return 0;
}

51nod1355:斐波那契的最小公倍数(数论)相关推荐

  1. [数论 斐波那契] 51nod1355. 斐波那契的最小公倍数

    进入斐波那契领域的第一题- 不要脸地截图了Manchery的博客--原文在这里 #include <cstdio> #include <iostream> #include & ...

  2. [51nod1355]斐波那契的最小公倍数

    $\text{lcm}$不好处理,考虑转为$\gcd$,主要是因为$(f_n,f_m)=f_{(n,m)}$ $\text{lcm}$的本质是指数取$\max$,$\gcd$的本质是指数取$\min$ ...

  3. 1355 斐波那契的最小公倍数

    1355 斐波那契的最小公倍数 原题连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1355 之前看唐老师题解学习 ...

  4. 51nod 1355 斐波那契的最小公倍数

    Upd2019.4.19 yy了一个新的做法 新的写法 之前的东西 链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1355 很神 ...

  5. 求水仙花数 以及 最大公约数最小公倍数 以及 冒泡法 以及字母大小写的转换 以及简单选择排序法 以及斐波那契数列

    什么是水仙花数呢? 假设一个数ABC是一个三位数. 水仙花数就是 A*A*A +B*B*B +C*C*C = ABC; 水仙花的具体代码. 接着是最大公约数以及最小公倍数 如果两个数是ab,最大公约数 ...

  6. ( 数论专题 )【 斐波那契通项公式 + 等比数列求和公式 】

    ( 数论专题 )[ 斐波那契通项公式 + 等比数列求和公式 ] 斐波那契通项公式( 证明略 ): 例题: 求当n趋向于无穷大,Sn等于什么,输出最简分数. 分子是斐波那契数列,分母是K的 i 次方, ...

  7. 数论——斐波那契数列

    定义 斐波那契数,又称黄金分割数列. 递推公式是:F(n)=F(n−1)+F(n−2)F(n)=F(n-1)+F(n-2). 推导通项公式 设常数rr和ss,使得F(n)−r×F(n−1)=s×[F( ...

  8. 2018年东北农业大学春季校赛 K wyh的数列【数论/斐波那契数列大数取模/循环节】...

    链接:https://www.nowcoder.com/acm/contest/93/K 来源:牛客网 题目描述 wyh学长特别喜欢斐波那契数列,F(0)=0,F(1)=1,F(n)=F(n-1)+F ...

  9. 数论 —— 斐波那契数列(Fibonacci)

    [概述] 斐波那契数列(Fibonacci sequence),又称黄金分割数列,其指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,3 ...

最新文章

  1. SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)
  2. Linux信号列表(sigint,sigtstp..)
  3. 基于thrift的微服务框架
  4. java.lang包中的常用类
  5. 各种语言速度之比,实验验证Cgojuliajavapythonoctave
  6. 去除img之间的空白
  7. 【mybatis-plus】什么是乐观锁?如何实现“乐观锁”
  8. JS异步操作新体验之 async函数
  9. jest.conf.js_如何在Jest中正确模拟Moment.js / dates
  10. 十八般武艺玩转GaussDB(DWS)性能调优:SQL改写
  11. java正则匹配性能,Java正则表达式的性能问题
  12. 手把手搭建一个完整的javaweb项目(适合新手)
  13. python爬取图虫网图库
  14. win10 cmd窗口切换目录并运行python代码
  15. 为您奉上Dicom文件格式属性清单,不谢!
  16. [源码解析]ESPnet脚本源码解析-aishell-asr.sh
  17. DENON AVR-X510BT 功放设置记录
  18. 【自动驾驶传感器融合系列】02自动驾驶中的多传感器同步理论
  19. redis安装和基本数据类型
  20. BZOJ5473: 仙人掌

热门文章

  1. @JsonFormat将时间字符串2021-02-25T15:32:54+08:00解析成date
  2. 在windows下编译Botan
  3. java扫雷程序,Java扫雷程序,初试Java-JSP教程,Java技巧及代码
  4. SQL Server 变更数据捕获(CDC)
  5. openstack官方安装文档的解析--环境配置篇(1)
  6. PHP - ChatGpt 学习 仅供参考
  7. 斗地主Java课程设计_Java斗地主发牌课程设计
  8. 摄影几何基础知识(1)
  9. 100个python算法超详细讲解:分糖果
  10. 扎心了!互联网公司福利缩水指南