BZOJ#4816. [Sdoi2017]数字表格
4816: [Sdoi2017]数字表格
Time Limit: 50 Sec Memory Limit: 128 MB
Submit: 1302 Solved: 652
Description
Input
有多组测试数据。
Output
Sample Input
2 3
4 5
6 7
Sample Output
6
960
void getmu() {mu[1]=1;for(int i=2;i<N;i++){if(!vis[i]) prime[++cnt]=i,mu[i]=-1;for(int j=1;j<=cnt;j++){if(i*prime[j]>=N) break;vis[i*prime[j]]=1;if(i%prime[j]==0) {mu[i*prime[j]]=0;break;}else mu[i*prime[j]]=-mu[i];}}f[1]=1;for(int i=2;i<N;i++) f[i]=(f[i-1]+f[i-2])%mod;for(int i=1;i<N;i++) inver[i]=qpow(mod-2,f[i]);fill(g,g+N,1);for(int i=1;i<N;i++)for(int j=1;i*j<N;j++)if(mu[j]) g[i*j]=g[i*j]*(mu[j]==1?f[i]:inver[i])%mod;for(int i=1;i<N;i++) g[i]=g[i]*g[i-1]%mod; }
#include<bits/stdc++.h> using namespace std; const int N=1e6+12; const int mod=1e9+7; int vis[N],mu[N],prime[N],cnt; long long f[N],g[N],inver[N];long long qpow(long long a,long long b) {long long ans=1LL;while(a){if(a&1) ans=ans*b%mod;b=b*b%mod;a>>=1; }return ans; } void getmu() {mu[1]=1;for(int i=2;i<N;i++) {if(!vis[i]) prime[++cnt]=i,mu[i]=-1;for(int j=1;j<=cnt;j++) {if(i*prime[j]>=N) break;vis[i*prime[j]]=1;if(i%prime[j]==0) {mu[i*prime[j]]=0;break;}else mu[i*prime[j]]=-mu[i];}}f[1]=1;for(int i=2;i<N;i++) f[i]=(f[i-1]+f[i-2])%mod;for(int i=1;i<N;i++) inver[i]=qpow(mod-2,f[i]);fill(g,g+N,1);for(int i=1;i<N;i++)for(int j=1;i*j<N;j++) if(mu[j]) g[i*j]=g[i*j]*(mu[j]==1?f[i]:inver[i])%mod;for(int i=1;i<N;i++) g[i]=g[i]*g[i-1]%mod; }int main() {freopen("a.in","r",stdin);getmu();int T;scanf("%d",&T);while(T--) {int n,m;scanf("%d%d",&n,&m);if(n>m) swap(n,m);long long ans=1;int pos;for(int i=1;i<=n;i=pos+1){pos=min(n/(n/i),m/(m/i));ans=ans*qpow((long long)(n/i)*(m/i),g[pos]*qpow(mod-2,g[i-1])%mod)%mod;}printf("%lld\n",ans);} return 0; }
转载于:https://www.cnblogs.com/Heey/p/9100705.html
BZOJ#4816. [Sdoi2017]数字表格相关推荐
- BZOJ 4816 [Sdoi2017]数字表格
题目链接 https://lydsy.com/JudgeOnline/problem.php?id=4816 题解 反演 ∏T=1min(n,m)(∏d∣Tfib(d)μ(d))⌊n/d⌋⌊m/d⌋ ...
- BZOJ 4816[SDOI2017]数字表格(莫比乌斯反演)
题目链接 \(Description\) 用\(f_i\)表示\(fibonacci\)数列第\(i\)项,求\(\prod_{i=1}^{n}\prod_{j=1}^{m}f[gcd(i,j)]\) ...
- SDOI2017 数字表格
SDOI2017 数字表格 题意: 题目传送门 题解: 答案的式子大致是这样的: \[\prod_{i = 1} ^ n \prod_{j = 1} ^ m f_{gcd(i, j)}\] 然后大力反 ...
- [SDOI2017]数字表格
题目描述 Doris刚刚学习了fibonacci数列.用$f[i]$ 表示数列的第$i$ 项,那么 $f[0]=0$ ,$f[1]=1$ , $f[n]=f[n-1]+f[n-2],n\geq 2$ ...
- 【bzoj4816】[Sdoi2017]数字表格
题目链接 Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Dor ...
- 「luogu3704」[SDOI2017]数字表格
莫比乌斯反演,其中一些处理比较套路 1 #include<bits/stdc++.h> 2 #define ll long long 3 using namespace std; 4 co ...
- 并不对劲的bzoj4816:loj2000:p3704[SDOI2017]数字表格
题目大意 有函数\(f(x)\),\(f(0)=0,f(1)=1,f(x)=f(x-1)+f(x-2)\) \(t\)(\(t\leq1000\))组询问,每次给定\(n,m\)(\(n,m\leq1 ...
- [bzoj4816][Sdoi2017]数字表格 (反演+逆元)
(真不想做莫比乌斯了) 首先根据题意写出式子 ∏(i=1~n)∏(j=1~m)f[gcd(i,j)] 很明显的f可以预处理出来,解决 根据套路分析,我们可以先枚举gcd(i,j)==d ∏(d=1~n ...
- 【BZOJ】【2154】Crash的数字表格
莫比乌斯反演 PoPoQQQ讲义第4题 题解:http://www.cnblogs.com/jianglangcaijin/archive/2013/11/27/3446169.html 感觉两次sq ...
- BZOJ 2154 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演,经典好题)(Luogu P1829)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P1829 [国家集训队]Crash的数字表格 / JZPTAB(反演,经典好题) Problem S ...
最新文章
- jenkins 漏洞集合 简介
- applicationContext.xml存放的位置
- Python学习笔记(三)——条件语句、循环语句
- 人类首张黑洞照片咋拍的:7千TB数据太大网络传不了只能飞机运
- 设计模式——抽象工厂模式
- IE6、7 a链接内图片加滤镜后导致a标签链接失效问题解决
- java character类
- foreach循环怎么获取全部返回值_PHP跳出循环的方法语句有哪些
- IIS 添加支持json格式文件
- C#基础-获得当前程序的 空间名.类名.方法名
- 百度SEO标题关键词伪原创组合工具
- SPSS应用——时间序列分析
- 分享一款好用的英语词频统计软件
- 正则表达式验证邮箱手机号
- Java经典书籍推荐
- ★ 最长递增子序列问题 (最多不相交路径)(分层思想) 网络流最大流
- app显示服务器图片不显示,如何将存在本地服务器的图片,在APP前台显示
- PCIe学习笔记(一)-------1.5 一个TLP包的传输过程
- 数据库设计(电商平台)
- 对称信道容量的计算MATLAB,准对称信道信道容量的证明及其Matlab实现