题目链接

\(Description\)
用\(f_i\)表示\(fibonacci\)数列第\(i\)项,求\(\prod_{i=1}^{n}\prod_{j=1}^{m}f[gcd(i,j)]\)。

\(T<=10^3,n,m≤10^6\)


\(Solution\)
再来推式子(默认\(n<m\))
\[\prod_{i=1}^{n}\prod_{j=1}^mf[gcd(i,j)]\]
按照套路枚举\(gcd\)
\[\prod_{d=1}^n\prod_{i=1}^{n/d}\prod_{j=1}^{m/d}f[d][gcd(i,j)==1]\]
考虑每个\(f[d]\)被乘了多少次
\[\prod_{d=1}^nf[d]^{\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}[gcd(i,j)==1]}\]
指数非常熟悉
\[\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}[gcd(i,j)==1]=\sum_{i=1}^{n/d}\mu(i)\lfloor\frac{n}{id}\rfloor\left\lfloor\frac{m}{id}\right\rfloor\]
现在指数可以数论分块,对\(f\)做一个前缀积之后外层也可以数论分块,这就可以做到每次询问\(O(nlogn)\)了。
但是这个式子还可以继续推,我们可以枚举\(id\)
令\(T=id\)
\[\prod_{T=1}^n\prod_{d|T}f[d]^{\mu(T/d)\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor}\]
根据数学运算法则就可以这样算
\[\prod_{T=1}^n(\prod_{d|T}f[d]^{\mu(T/d)})^{\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor}\]
括号里面的式子可以预处理,乘方可以数论分块,这样就可以单词询问\(O(\sqrt n logn)\)了。

#include<complex>
#include<cstdio>
using namespace std;
const int mod=1e9+7;
const int N=1e6+7;
int Q,n,m,tot;
int prime[N],mu[N],f[N],g[N],pro[N];
bool check[N];
int qread()
{int x=0;char ch=getchar();while(ch<'0' || ch>'9')ch=getchar();while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}return x;
}
int Fpow(long long b,int p)
{long long res=1;for(;p;p>>=1,b=b*b%mod)if(p&1)res=res*b%mod;return res;
}
void Init()
{check[1]=1;mu[1]=f[1]=pro[0]=pro[1]=g[1]=1;for(int i=2;i<N;i++){if(!check[i])prime[++tot]=i,mu[i]=-1;for(int j=1;j<=tot && i*prime[j]<N;j++){check[i*prime[j]]=1;if(i%prime[j])mu[i*prime[j]]=-mu[i];else break;}f[i]=(f[i-1]+f[i-2])%mod;pro[i]=1;g[i]=Fpow(f[i],mod-2);}for(int i=1;i<N;i++){if(!mu[i])continue;for(int j=i;j<N;j+=i)pro[j]=1ll*pro[j]*(mu[i]==1?f[j/i]:g[j/i])%mod;}for(int i=2;i<N;i++)pro[i]=1ll*pro[i]*pro[i-1]%mod;
}
int main()
{Init();scanf("%d",&Q);while(Q--){n=qread();m=qread();if(n>m)swap(n,m);int ans=1;for(int l=1,r;l<=n;l=r+1){r=min(n/(n/l),m/(m/l));ans=1ll*ans*Fpow(1ll*pro[r]*Fpow(pro[l-1],mod-2)%mod,1ll*(n/l)*(m/l)%(mod-1))%mod;}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/LeTri/p/10334467.html

BZOJ 4816[SDOI2017]数字表格(莫比乌斯反演)相关推荐

  1. BZOJ 4816 [Sdoi2017]数字表格

    题目链接 https://lydsy.com/JudgeOnline/problem.php?id=4816 题解 反演 ∏T=1min⁡(n,m)(∏d∣Tfib(d)μ(d))⌊n/d⌋⌊m/d⌋ ...

  2. BZOJ 2154 Crash的数字表格 (莫比乌斯反演)

    Crash的数字表格 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如, ...

  3. 【bzoj2154】Crash的数字表格 莫比乌斯反演

    题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如,LCM(6, ...

  4. 【BZOJ2154】Crash的数字表格 [莫比乌斯反演]

    Crash的数字表格 Time Limit: 20 Sec  Memory Limit: 259 MB [Submit][Status][Discuss] Description 今天的数学课上,Cr ...

  5. [bzoj4816][Sdoi2017]数字表格 (反演+逆元)

    (真不想做莫比乌斯了) 首先根据题意写出式子 ∏(i=1~n)∏(j=1~m)f[gcd(i,j)] 很明显的f可以预处理出来,解决 根据套路分析,我们可以先枚举gcd(i,j)==d ∏(d=1~n ...

  6. 洛谷 - P1829 - Crash的数字表格 - 莫比乌斯反演

    求: \(S(n,m)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)\) 显然: \(S(n,m)=\sum\limits_{i=1}^{n}\ ...

  7. [BZOJ2154]Crash的数字表格 莫比乌斯反演

    orz PoPoQQQ 课件上的例题啊orzorz 话说这种根号划分的方法好像次次都有的样子orzorz http://wenku.baidu.com/link?url=RRtdDApIUqzKmUD ...

  8. SDOI2017 数字表格

    SDOI2017 数字表格 题意: 题目传送门 题解: 答案的式子大致是这样的: \[\prod_{i = 1} ^ n \prod_{j = 1} ^ m f_{gcd(i, j)}\] 然后大力反 ...

  9. BZOJ 2820 YY的GCD 莫比乌斯反演

    2820: YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y) ...

最新文章

  1. 本地应用 v-for 指令
  2. c语言患者住院管理系统,患者住院管理系统 C,C++.doc
  3. 指针-指向函数指针数组的指针
  4. Android -- Looper.prepare()和Looper.loop() —深度版
  5. STL之partial_sum
  6. 你的 App 在 iOS 13 上被卡死了吗?
  7. ORB-SLAM2-建立双目稠密点云(一)
  8. 【译】成为明星数据科学家的13大技能
  9. python开发技术文档范文_常用python编程模板汇总
  10. 青岛经济职业学校计算机老师,青春不散场!青岛经济职业学校举办2020届毕业典礼...
  11. 怎么改造计算机玩游戏,大神请收下我的膝盖 牛人将红白机改造成PC玩游戏
  12. [3]_人人都是产品经理
  13. 4-14 递归求阶乘和 (10分)
  14. 论文复刻:排污权机制是否提高了企业全要素生产率(附代码、数据、原文献)
  15. 有关计算机英语作文素材,英语写作素材
  16. VB编程:IsNumeric判断闰年-48
  17. 2021年塔式起重机司机最新解析及塔式起重机司机考试试卷
  18. web uploader实现文件的上传和下载功能
  19. Kafka 批量消费
  20. 计算机一级b需要学哪些内容,全国计算机等级考试一级B的学习方法

热门文章

  1. 精度与比例尺之间的关系
  2. 磁盘被写保护怎么办?5个方案解除它
  3. 抓包神器 Charles
  4. plc梯形图转换c语言,求助将梯形图程序转换成指令表,并说明该段梯形图实现的功能...
  5. ramdisk文件系统的介绍与制作
  6. 面试记录-美团提前批(AI 专场)【已拿offer】
  7. 为什么祖传代码被称为「屎山」?这个回答简直太形象了
  8. 计算机主机故障有哪些,电脑主机电源常见的问题与解决方法_电脑故障
  9. 人工智能和嵌入式|大数据|云计算等的关系
  10. 魔兽世界场景组织浅析