一开始只推出O(TN)的做法,后来看了看发现再推一步就好了。

我们只需要枚举gcd就可以啦。

然后我们改变一下枚举顺序

设T为dk

预处理中间那部分前缀积就好了。

 #include<bits/stdc++.h>
using namespace std;
const int N=1e6+,mod=1e9+;
int n,m,p[N/],miu[N],g[N],f[N],inv[N],cnt;bool v[N];
typedef long long ll;
int qmod(int x,ll y)
{
int ans=;
while(y)
{
if(y&)ans=1ll*ans*x%mod;
x=1ll*x*x%mod;y>>=;
}
return ans;
}
void init()
{
miu[]=;
for(int i=;i<=1e6;++i)
{
if(!v[i])
{
p[++cnt]=i;miu[i]=-;
}
for(int j=;j<=cnt&&i*p[j]<=1e6;++j)
{
v[i*p[j]]=;
if(i%p[j]==)break;
miu[i*p[j]]=-miu[i];
}
}
for(int i=;i<=1e6;++i)g[i]=;
f[]=;f[]=g[]=;
for(int i=;i<=1e6;++i)f[i]=(f[i-]+f[i-])%mod;
for(int i=;i<=1e6;++i)
{
inv[i]=qmod(f[i],mod-);
for(int j=i,k=;j<=1e6;j+=i,k++)
if(miu[k])
{
if(miu[k]==-)
g[j]=1ll*g[j]*inv[i]%mod;
else
g[j]=1ll*g[j]*f[i]%mod;
}
g[i]=1ll*g[i]*g[i-]%mod;
}
return;
}
int main()
{
init();int T;
scanf("%d",&T);
for(int k=;k<=T;++k)
{
scanf("%d%d",&n,&m);
if(n>m)swap(n,m);int ans=;
for(int i=,j;i<=n;i=j+)
{
j=min(n/(n/i),m/(m/i));
ans=1ll*ans*qmod(1ll*g[j]*qmod(g[i-],mod-)%mod,1ll*(n/i)*(m/i))%mod;
}
printf("%d\n",(ans+mod)%mod);
}
return ;
}

BZOJ4816 Sdoi2017数字表格的更多相关文章

  1. bzoj4816 [Sdoi2017]数字表格

    Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师 ...

  2. BZOJ4816 [Sdoi2017]数字表格 数论 莫比乌斯反演

    原文链接http://www.cnblogs.com/zhouzhendong/p/8666106.html 题目传送门 - BZOJ4816 题意 定义$f(0)=0,f(1)=1,f(i)=f(i ...

  3. BZOJ4816 [Sdoi2017]数字表格 【莫比乌斯反演】

    题目 Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生成了 ...

  4. BZOJ4816 SDOI2017 数字表格 莫比乌斯反演

    传送门 做莫比乌斯反演题显著提高了我的\(\LaTeX\)水平 推式子(默认\(N \leq M\),分数下取整,会省略大部分过程) \(\begin{align*} \prod\limits_{i= ...

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

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

  6. BZOJ:4816: [Sdoi2017]数字表格

    4816: [Sdoi2017]数字表格 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 501  Solved: 222[Submit][Status ...

  7. [Sdoi2017]数字表格 [莫比乌斯反演]

    [Sdoi2017]数字表格 题意:求 \[ \prod_{i=1}^n \prod_{j=1}^m f[(i,j)] \] 考场60分 其实多推一步就推倒了... 因为是乘,我们可以放到幂上 \[ ...

  8. 【BZOJ4816】数字表格(莫比乌斯反演)

    [BZOJ4816]数字表格(莫比乌斯反演) 题面 BZOJ 求 \[\prod_{i=1}^n\prod_{j=1}^mf[gcd(i,j)]\] 题解 忽然不知道这个要怎么表示... 就写成这样吧 ...

  9. 【BZOJ 4816】 4816: [Sdoi2017]数字表格 (莫比乌斯)

    4816: [Sdoi2017]数字表格 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 666  Solved: 312 Description Do ...

随机推荐

  1. Scala进阶之路-为什么要学习Scala以及开发环境搭建

    Scala进阶之路-为什么要学习Scala以及开发环境搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近人工智能和大数据那是相当的火呀,人工智能带动了Python的流行,区块 ...

  2. log4j2打印jdbcTemplate的sql以及参数

    log4j2打印jdbcTemplate的sql以及参数 ——IT唐伯虎 摘要: log4j2打印jdbcTemplate的sql以及参数. 在log4j2.xml加上这两个logger即可: < ...

  3. 搜索引擎:Elasticsearch与Solr

    搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎.它可以帮助你用前所未有的速度去处理大规模数据. 它可以用于全文搜索,结构化搜索以及分 ...

  4. transform 属性之 transform-origin与顺序问题

    transform属性之 transform-origin 针对transform中的几种值的先后顺序 transform值的先后顺序: 注意: 当我们在旋转后再进行位移的时候,其实是按照旋转后的坐标 ...

  5. bzoj千题计划229:bzoj4424: Cf19E Fairy

    http://www.lydsy.com/JudgeOnline/problem.php?id=4424 图是二分图的条件:没有奇环 所以,如果图不存在奇环,删除任意一条边都可以 如果存在奇环, 对于 ...

  6. django2.0 官方中文文档地址

    django2.0 官方开始发布中文文档了,之前还想着一直翻译完成所有有必要的内容,想着可以省事一些了,打开以后看了一下,发现官方的中文文档还没翻译完成, 现在(2018-7-10)最新章节是是  编 ...

  7. 40个新鲜的 jQuery 插件,使您的网站用户友好

    作为最流行的 JavaScript 开发框架,jQuery 在现在的 Web 开发项目中扮演着重要角色,它简化了 HTML 文档遍历,事件处理,动画以及 Ajax 交互,这篇文章特别收集了40个新鲜的 ...

  8. [整理]ASP.NET 中异常处理

    [整理]ASP.NET 中异常处理 1.直接通过重写Controller的OnException来处理异常 public class HomeController : Controller { pub ...

  9. centos安装lrzsz

    yum -y install lrzsz 使用rz打开上传框

  10. java代码实现图片处理功能。对图片质量进行压缩。

    java图片处理有点头疼,找了很多资料.在这里进行一个汇总,记录下个人的体验,也希望对大家有所帮助. 需求:浏览的图片需要在1M一下. 1.真正对图片的质量进行压缩的(不是通过修改图片的高,宽进行缩小 ...