LOJ6102「2017 山东二轮集训 Day1」第三题 【min-max容斥,反演】

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

题目描述:输入一个大小为\(n\)的集合\(S\),求\(\text{lcm}_{k\in S}f_k\),其中\(f_k\)是第$$个Fibonacci数。

数据范围:\(n\le 5\times 10^4,u\le 10^6\)

数论经典题?

首先你要想到min-max容斥。

\[\text{lcm}(f_S)=\prod_{\varnothing\ne T\subseteq S}\gcd(f_T)^{(-1)^{|T|-1}}
\]

然后你知道\(\gcd(f_a,f_b)=f_\gcd(a,b)\),所以。

\[\text{lcm}(f_S)=\prod_{\varnothing\ne T\subseteq S}f_{\gcd(T)}^{(-1)^{|T|-1}}
\]

不知道为什么你开始反演,设\(f_n=\prod\limits_{d|n}g_d\),则\(g_n=\prod\limits_{d|n}f_{d}^{\mu(\frac{n}{d})}\)。

\[\begin{aligned}
\text{lcm}(f_S)&=\prod_{\varnothing\ne T\subseteq S}(\prod_{d|\gcd(T)}g_d)^{(-1)^{|T|-1}} \\
&=\prod_{d}g_d^{\sum\limits_{\varnothing\ne T\subseteq S,d|T}(-1)^{|T|-1}}
\end{aligned}
\]

我们看看指数是啥。设\(S_d=\{n|n\in S\and d|n\}\)。

\[\sum_{\varnothing\ne T\subseteq S_d}(-1)^{|T|-1}=[|S_d|>0]
\]

所以

\[\text{lcm}(f_S)=\prod_{\exist a\in S,d|a}g_d
\]

直接做,时间复杂度\(O(k\log k)\)

code

```cpp
#include
#define Rint register int
using namespace std;
typedef long long LL;
const int mod = 1e9 + 7, N = 1000003;
int n, a[N], mx, f[N], g[N], ans = 1;
bool vis[N];
inline int add(int a, int b){return (a + b >= mod) ? (a + b - mod) : (a + b);}
inline int kasumi(int a, int b){
int res = 1;
while(b){
if(b & 1) res = (LL) res * a % mod;
a = (LL) a * a % mod; b >>= 1;
}
return res;
}
int main(){
scanf("%d", &n);
for(Rint i = 1;i

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“LOJ6102「2017 山东二轮集训 Day1」第三题 【min-max容斥,反演】” 的相关文章

connect超时时间过长

connect连接时如果跨网段会造成超时,这样会阻塞当前,如果是带GUI的,则会卡住程序, 这样有2种解决方法: 1.用多线程,将连接放在线程中去处理,这样要等也没关系 2.但是实际上还可以设置非阻塞,然后select,这样也会卡,但是这个卡的时间可以自己去...

mutable

mutable是让变量在const的函数里面可以被修改...

19Mn6执行标准、19Mn6力学性能、19Mn6期货订轧

1、19Mn6钢板简介:19Mn6是德标耐高温高压锅炉容器钢板,与国标Q345R以及欧标P355GH相接近,执行标准为DIN17155标准,国内舞钢可生产并且已达到国际先进水平。19Mn6钢板的交货状态:一般为正火,可根据实际使用要求,双方协定钢板的交货状态,并在合同当中注明。19Mn6钢板牌号表示...

PHP数组中怎么实现多条件筛选 - 编程语言

这篇文章主要介绍“PHP数组中怎么实现多条件筛选”,在日常操作中,相信很多人在PHP数组中怎么实现多条件筛选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP数组中怎么实现多条件筛选”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!...

通过spring-boot-maven-plugin package失败问题怎么解决 - 开发技术

这篇文章主要介绍“通过spring-boot-maven-plugin package失败问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“通过spring-boot-maven-plugin pa...

Python怎么实现交通数据可视化 - 编程语言

这篇文章主要讲解了“Python怎么实现交通数据可视化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么实现交通数据可视化”吧! 1、TransBigData简介TransBig...