题面
题意给出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. 简述使用混合传递参数时的基本原则_JUnit 5参数化方法测试(一)
  2. php的辅助工具下载,PHPTools 工具包(让你的EditPlus可以调试PHP)
  3. Linux - 手册(manual)使用 详解
  4. 2204 Problem A(水)
  5. 驱动设计的思想:面向对象/分层/分离
  6. NTU 课程辅助笔记: NFA到DFA的转化
  7. 针对各组项目的改进意见
  8. 编程实现有关SMS4的2个程序之——编程实现线性变换模块
  9. when is SAP UI5 formatter called
  10. csv linux java,java 执行Linux 命令合并.csv文件
  11. 【Flink】flink on yarn 并行度设置高导致任务失败
  12. Cent OS 6/7 中通过yum安装软件时提示cannot find a valid baseurl...的解决方法
  13. 异常处理 Exceptions
  14. list scala 当前位置 遍历_Scala学习七之集合了解
  15. knx智能照明控制系统电路图_智能照明控制系统(KNX)讲解
  16. 数据中心服务器巡检方案,IDC机房巡检方案
  17. Cookie、Kaptcha
  18. DEV C++ 解决方案
  19. CentOS 7 Shipyard启动时一直显示省略号的解决办法
  20. vue-cli4 + cordova扫描二维码

热门文章

  1. 远程桌面连接接入路由器的电脑(Windows10)
  2. php 26个字母输出三角形,php使用for语句输出三角形的方法
  3. CISSP资料:独家笔记
  4. 基于JAVA的网上购书系统(附:源码 论文 项目运行视频)
  5. SQLzoo练习题回顾
  6. 带你7天玩转可视化建站平台
  7. tsv文件与csv文件的区别以及如何转换
  8. MFC下调用yolo_cpp_dll.dll
  9. 【python】取txt文件中的单词存到SQLite数据库,并且从bing词典爬取单词详情
  10. EMQ 助力阿里云洛神云网络构建新一代“亿级并发、百万级吞吐”NLB 网络型负载均衡系统