51nod1355:斐波那契的最小公倍数(数论)
题面
题意给出n个a,问LCM{ f(a) },f为斐波那契数。
知乎靠谱的题解
记住这两个路人性质就好
①容斥求LCM
\text{lcm}\{S\}=\displaystyle\prod_{T\subseteq S,T\ne \,\emptyset} \gcd\{T\}^{(-1)^{|T|+1}}
②对多个数也成立
\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:斐波那契的最小公倍数(数论)相关推荐
- [数论 斐波那契] 51nod1355. 斐波那契的最小公倍数
进入斐波那契领域的第一题- 不要脸地截图了Manchery的博客--原文在这里 #include <cstdio> #include <iostream> #include & ...
- [51nod1355]斐波那契的最小公倍数
$\text{lcm}$不好处理,考虑转为$\gcd$,主要是因为$(f_n,f_m)=f_{(n,m)}$ $\text{lcm}$的本质是指数取$\max$,$\gcd$的本质是指数取$\min$ ...
- 1355 斐波那契的最小公倍数
1355 斐波那契的最小公倍数 原题连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1355 之前看唐老师题解学习 ...
- 51nod 1355 斐波那契的最小公倍数
Upd2019.4.19 yy了一个新的做法 新的写法 之前的东西 链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1355 很神 ...
- 求水仙花数 以及 最大公约数最小公倍数 以及 冒泡法 以及字母大小写的转换 以及简单选择排序法 以及斐波那契数列
什么是水仙花数呢? 假设一个数ABC是一个三位数. 水仙花数就是 A*A*A +B*B*B +C*C*C = ABC; 水仙花的具体代码. 接着是最大公约数以及最小公倍数 如果两个数是ab,最大公约数 ...
- ( 数论专题 )【 斐波那契通项公式 + 等比数列求和公式 】
( 数论专题 )[ 斐波那契通项公式 + 等比数列求和公式 ] 斐波那契通项公式( 证明略 ): 例题: 求当n趋向于无穷大,Sn等于什么,输出最简分数. 分子是斐波那契数列,分母是K的 i 次方, ...
- 数论——斐波那契数列
定义 斐波那契数,又称黄金分割数列. 递推公式是: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( ...
- 2018年东北农业大学春季校赛 K wyh的数列【数论/斐波那契数列大数取模/循环节】...
链接:https://www.nowcoder.com/acm/contest/93/K 来源:牛客网 题目描述 wyh学长特别喜欢斐波那契数列,F(0)=0,F(1)=1,F(n)=F(n-1)+F ...
- 数论 —— 斐波那契数列(Fibonacci)
[概述] 斐波那契数列(Fibonacci sequence),又称黄金分割数列,其指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,3 ...
最新文章
- SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)
- Linux信号列表(sigint,sigtstp..)
- 基于thrift的微服务框架
- java.lang包中的常用类
- 各种语言速度之比,实验验证Cgojuliajavapythonoctave
- 去除img之间的空白
- 【mybatis-plus】什么是乐观锁?如何实现“乐观锁”
- JS异步操作新体验之 async函数
- jest.conf.js_如何在Jest中正确模拟Moment.js / dates
- 十八般武艺玩转GaussDB(DWS)性能调优:SQL改写
- java正则匹配性能,Java正则表达式的性能问题
- 手把手搭建一个完整的javaweb项目(适合新手)
- python爬取图虫网图库
- win10 cmd窗口切换目录并运行python代码
- 为您奉上Dicom文件格式属性清单,不谢!
- [源码解析]ESPnet脚本源码解析-aishell-asr.sh
- DENON AVR-X510BT 功放设置记录
- 【自动驾驶传感器融合系列】02自动驾驶中的多传感器同步理论
- redis安装和基本数据类型
- BZOJ5473: 仙人掌
热门文章
- @JsonFormat将时间字符串2021-02-25T15:32:54+08:00解析成date
- 在windows下编译Botan
- java扫雷程序,Java扫雷程序,初试Java-JSP教程,Java技巧及代码
- SQL Server 变更数据捕获(CDC)
- openstack官方安装文档的解析--环境配置篇(1)
- PHP - ChatGpt 学习 仅供参考
- 斗地主Java课程设计_Java斗地主发牌课程设计
- 摄影几何基础知识(1)
- 100个python算法超详细讲解:分糖果
- 扎心了!互联网公司福利缩水指南