题面

反演题,推式子么=。=

$\prod\limits_{d=1}^{min(n,m)}\prod\limits_{i=1}^n\prod\limits_{j=1}^m[gcd(i,j)==d]fib[d]$

把$fib[d]$前提,前面的连乘就跑到指数上去了

$\prod\limits_{d=1}^{min(n,m)}fib[d]^{\sum\limits_{i=1}^n\sum\limits_{j=1}^m[gcd(i,j)==d]}$

开始反演那坨指数,等等这玩意不是做过么=。=

$\sum\limits_{i=1}^n\sum\limits_{j=1}^m[gcd(i,j)==d]$

$\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{m}{d}\right\rfloor}[gcd(i,j)==1]$

$\sum\limits_{i=1}^{min(\left\lfloor\frac{n}{d}\right\rfloor,\left\lfloor\frac{m}{d}\right\rfloor)}μ(i)\left\lfloor\frac{n}{id}\right\rfloor\left\lfloor\frac{m}{id}\right\rfloor$

于是把$id$捉出来,在原来的整个式子里枚举$id$(不是那个$id$,都懂)

$\prod\limits_{k=1}^{min(n,m)}(\prod\limits_{d|k}fib[d]^{μ(\frac{k}{d})})^{\left\lfloor\frac{n}{k}\right\rfloor\left\lfloor\frac{m}{k}\right\rfloor}$

停,可以做了

对于$\prod\limits_{d|k}fib[d]^{μ(\frac{k}{d})}$,预处理,大力把每个数乘到倍数上去,复杂度$O(n\log n)$

对于$\left\lfloor\frac{n}{k}\right\rfloor\left\lfloor\frac{m}{k}\right\rfloor$这个指数,可以数论分块,这样再加个快速幂每次回答复杂度就是$O(\sqrt n\log mod)$了,可能有点卡常?我倒是一次过了

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,M=,mod=1e9+;
int fib[N],ifb[N],pfb[N],ipf[N];
int pri[N],npr[N],mul[N];
int T,n,m,x,y,mn,cnt,ans;
int qpow(int x,int k)
{
if(k==) return x;
int tmp=qpow(x,k/);
return k%?1ll*tmp*tmp%mod*x%mod:1ll*tmp*tmp%mod;
}
void exGCD(int a,int b,int &x,int &y)
{
if(!b) {x=,y=; return ;}
exGCD(b,a%b,y,x); y-=a/b*x;
}
int Inv(int b)
{
exGCD(b,mod,x,y);
return (x+mod)%mod;
}
void prework()
{
register int i,j;
npr[]=true,mul[]=,fib[]=,ifb[]=,pfb[]=;
for(i=;i<=M;i++)
{
fib[i]=(fib[i-]+fib[i-])%mod;
ifb[i]=Inv(fib[i]),pfb[i]=;
if(!npr[i])
pri[++cnt]=i,mul[i]=-;
for(j=;j<=cnt&&i*pri[j]<=M;j++)
{
npr[i*pri[j]]=true;
if(i%pri[j]==) break;
else mul[i*pri[j]]=-mul[i];
}
}
for(i=;i<=M;i++)
for(j=i;j<=M;j+=i)
if(mul[j/i]) pfb[j]=1ll*pfb[j]*((~mul[j/i])?fib[i]:ifb[i])%mod;
pfb[]=ipf[]=;
for(i=;i<=M;i++)
{
ipf[i]=Inv(pfb[i]);
pfb[i]=1ll*pfb[i-]*pfb[i]%mod;
ipf[i]=1ll*ipf[i-]*ipf[i]%mod;
}
}
int main()
{
register int i,j;
scanf("%d",&T),prework();
while(T--)
{
scanf("%d%d",&n,&m);
mn=min(n,m),ans=;
for(i=;i<=mn;i=j+)
{
j=min(n/(n/i),m/(m/i));
ans=1ll*ans*qpow(1ll*pfb[j]*ipf[i-]%mod,1ll*(n/i)*(m/i)%(mod-))%mod;
}
printf("%d\n",ans);
}
return ;
}

解题:SDOI 2017 数字表格的更多相关文章

  1. [SDOI 2017]数字表格

    Description 题库链接 记 \(f_i\) 为 \(fibonacci\) 数列的第 \(i\) 项. 求 \[\prod_{i=1}^n\prod_{j=1}^mf_{gcd(i,j)}\ ...

  2. SDOI 2017 Round1 解题报告

    Day 1 T1 数字表格 题目大意 · 求\(\prod\limits_{i=1}^n\prod\limits_{j=1}^mFibonacci(\gcd(i,j))\),\(T\leq1000\) ...

  3. 洛谷 P1829 [国家集训队]Crash的数字表格 / JZPTAB 解题报告

    [国家集训队]Crash的数字表格 / JZPTAB 题意 求\(\sum\limits_{i=1}^n\sum\limits_{j=1}^mlcm(i,j)\),\(n,m\le 10^7\) 鉴于 ...

  4. BZOJ 4816 数字表格

    首先是惯例的吐槽.SDOI题目名称是一个循环,题目内容也是一个循环,基本上过几年就把之前的题目换成另一个名字出出来,喜大普奔亦可赛艇.学长说考SDOI可以考出联赛分数,%%%. 下面放解题报告.并不喜 ...

  5. BZOJ4816 数字表格

    4816: [Sdoi2017]数字表格 Time Limit: 50 Sec  Memory Limit: 128 MB Description Doris刚刚学习了fibonacci数列.用f[i ...

  6. BZOJ 2154: Crash的数字表格 [莫比乌斯反演]

    2154: Crash的数字表格 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 2924  Solved: 1091[Submit][Status][ ...

  7. 【BZOJ】【2154】Crash的数字表格

    莫比乌斯反演 PoPoQQQ讲义第4题 题解:http://www.cnblogs.com/jianglangcaijin/archive/2013/11/27/3446169.html 感觉两次sq ...

  8. 【莫比乌斯反演】关于Mobius反演与lcm的一些关系与问题简化(BZOJ 2154 crash的数字表格&&BZOJ 2693 jzptab)

    BZOJ 2154 crash的数字表格 Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b ...

  9. 【BZOJ 2154】Crash的数字表格 (莫比乌斯+分块)

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

随机推荐

  1. 高可用OpenStack(Queen版)集群-10.Nova计算节点

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  2. Vue03

    5.组件化开发 组件[component] 在网页中实现一个功能,需要使用html定义功能的内容结构,使用css声明功能的外观样式,还要使用js来定义功能的特效,因此就产生了把一个功能相关的[HTML ...

  3. Flask之笔记集合

    目录 一.简述 二.基本使用 三.配置文件 四.路由系统 2.自定义正则路由 五.模版语言 六.请求和响应 七.Session 2.自定义session 八.蓝图 九.message 十.中间件 十一 ...

  4. JS以及CSS对页面的阻塞

    一.JS阻塞 所有的浏览器在下载JS文件的时候,会阻塞页面上的其他活动,包括其他资源的下载以及页面内容的呈现等等,只有当JS下载.解析.执行完,才会进行后面的 操作.在现代的浏览器中CSS资源和图片i ...

  5. 互评Alpha作品——Hello World!团队作品空天猎

    基于NABCD评论作品 1.Need需求:市面上同类型的手机及PC端飞行射击类游戏有很多,所以从需求方面来说,这款游戏的潜在客户非常有局限性.近些年较火的飞行射击类游戏,例如腾讯14年发行的<全 ...

  6. Codeforces Round #182 (Div. 1) B. Yaroslav and Time 最短路

    题目链接: http://codeforces.com/problemset/problem/301/B B. Yaroslav and Time time limit per test2 secon ...

  7. 【动态规划】POJ-3616

    一.题目 Description Bessie is such a hard-working cow. In fact, she is so focused on maximizing her pro ...

  8. [建树(非二叉树)] 1106. Lowest Price in Supply Chain (25)

    1106. Lowest Price in Supply Chain (25) A supply chain is a network of retailers(零售商), distributors( ...

  9. 安装mysql后遇到的一些问题

    我们安装好了mysql(cnetos7上是安装mariadb)后,出现如下图所示的问题,我们可以用netstat -lntup查看以下服务器的端口,mysql的端口一般默认为 3306,查看服务是否启 ...

  10. 最近JavaScript的一些收获

    开发习惯的上的收获 1,开发过程中,要让整个逻辑展示在一个函数中,中间部分则做可以考虑公用策略优化 2,开发完成至少有三个角度进行测试,正面方面和中立 开发技巧上面的收获 1,驼峰转为‘-’以及‘-’ ...