Link

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN=1e6;
int T,n,m,f[MAXN+10],g[MAXN+10],inv[MAXN+10];
const int mod=1e9+7;
inline int add(int x,int y){return (x+y+mod)%mod;}
inline int mul(int x,int y){return 1ll*x*y%mod;}
inline int mul_(int x,int y){return 1ll*x*y%(mod-1);}
bitset<MAXN+10>vis;
int p[MAXN+10],cnt,mu[MAXN+10],ans;
inline int qpow(int x,int y){
int res=1;
while(y){
if(y&1)res=mul(res,x);
x=mul(x,x);y>>=1;
}
return res;
}
void pretreatment(int G){
mu[1]=1;f[1]=1;inv[1]=1;g[0]=g[1]=1;vis[1]=1;
for(int i=2;i<=G;++i){
f[i]=f[i-1]+f[i-2];f[i]%=mod;
inv[i]=qpow(f[i],mod-2);g[i]=1;
if(!vis[i])p[++cnt]=i,mu[i]=-1;
for(int j=1;j<=cnt&&i*p[j]<=G;++j){
vis[i*p[j]]=1;
if(i%p[j]==0)break;
mu[i*p[j]]=-mu[i];
}
}
//for(int i=1;i<=G;++i)mu[i]+=mu[i-1];
for(int i=1;i<=G;++i){
if(!mu[i])continue;
for(int j=i;j<=G;j+=i){
g[j]=1ll*g[j]*(mu[i]==1?f[j/i]:inv[j/i])%mod;
}
}
for(int i=2;i<=G;++i)g[i]=mul(g[i],g[i-1]);
}
int solve(int N,int M){
int res=1;
for(int l=1,r;l<=min(N,M);l=r+1){
r=min(N/(N/l),M/(M/l));
int PP=mul(g[r],qpow(g[l-1],mod-2));
res=mul(res,qpow(PP,mul_(N/l,M/l)));
}
return res;
}
signed main(){
//freopen("1.in","r",stdin);
//freopen("test.out","w",stdout);
pretreatment(1000000);
scanf("%lld",&T);
while(T--){
scanf("%lld%lld",&n,&m);
if(n>m)swap(n,m);
ans=solve(n,m);
printf("%lld\n",(ans+mod)%mod);
}
return 0;
}

菜鸡笔者推到枚举\(kd\)时没有想到,于是悲惨爆零)

注意函数的筛法,以及指数取余的时候可以套用欧拉定理。

【题解】[SDOI2017]数字表格的更多相关文章

  1. 题解-[SDOI2017]数字表格

    题解-[SDOI2017]数字表格 前置知识: 莫比乌斯反演</> [SDOI2017]数字表格 \(T\) 组测试数据,\(f_i\) 表示 \(\texttt{Fibonacci}\) ...

  2. [SDOI2017]数字表格 & [MtOI2019]幽灵乐团

    P3704 [SDOI2017]数字表格 首先根据题意写出答案的表达式 \[\large\prod_{i=1}^n\prod_{j=1}^mf_{\gcd(i,j)} \] 按常规套路改为枚举 \(d ...

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

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

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

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

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

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

  6. P3704 [SDOI2017]数字表格

    P3704 [SDOI2017]数字表格 链接 分析: $\ \ \ \prod\limits_{i = 1}^{n} \prod\limits_{j = 1}^{m} f[gcd(i, j)]$ $ ...

  7. [SDOI2017]数字表格 --- 套路反演

    [SDOI2017]数字表格 由于使用markdown的关系 我无法很好的掌控格式,见谅 对于这么简单的一道题竟然能在洛谷混到黑,我感到无语 \[\begin{align*} \prod\limits ...

  8. P3704 [SDOI2017]数字表格 (莫比乌斯反演)

    [题目链接] https://www.luogu.org/problemnew/show/P3704 [题解] https://www.luogu.org/blog/cjyyb/solution-p3 ...

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

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

随机推荐

  1. AndroidStudio与eclipse打包的时候报错。Error:(4) Error: "ssdk_instapager_login_html" is not translated in "en"

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  2. 程序员软件开发最好的IDE集成工具eclipse各个版本的详细介绍。详细介绍,送给初学者的朋友

    对于刚接触软件开发的初学者,在下载eclipse时,对官网上面提供的各种版本的选择犹豫不决.下面将对常用的几个版本进行介绍. Eclipse版本 Eclipse Standard 该版本是eclips ...

  3. Tomcat7.0.99集群使用Redis共享session方案

    以前配置过给予多播的session共享方案,这回再配置一个redis共享session的. 先小小的炫耀一下: 相信大家要做Tomcat+Redis+session配置,遇到的头号麻烦就是编译的tom ...

  4. .NET实现可交互的WINDOWS服务(转载自CSDN"烈火蜓蜻")

    Windows 服务应用程序在不同于登录用户的交互区域的窗口区域中运行.窗口区域是包含剪贴板.一组全局原子和一组桌面对象的安全对象.由于 Windows 服务的区域不是交互区域,因此 Windows ...

  5. MySQL中存储json格式数据

    1.1.1. JSON类型数据存储 新建表 create table json_user ( uid int auto_increment, data json, primary key(uid) ) ...

  6. Struts 2 漏洞专题 | S2-008

    漏洞简介 为了防止攻击者在参数内调用任意方法,默认情况下将标志xwork.MethodAccessor.denyMethodExecution设置为true,并将SecurityMemberAcces ...

  7. 为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)

    写在前面 最近发现很多小伙伴对于工作中的一些基本工具的使用还不是很了解,比如:Git这个分布式的代码管理仓库,很多小伙伴就不是很了解,或者说不是很熟悉.甚至有些小伙伴都没听说过Git,就只会用个SVN ...

  8. PJzhang:vulnhub靶机sunset系列SUNSET:TWILIGHT

    猫宁~~~ 地址:https://www.vulnhub.com/entry/sunset-twilight,512/ 关注工具和思路. nmap 192.168.43.0/24靶机IP192.168 ...

  9. Docker之简单操作

    安装完Docker后,我们就可以与Docker进行交互来创建和管理容器等操作. 容器生命周期管理: 创建一个新的容器并运行一个命令 docker run [OPTIONS] IMAGE [COMMAN ...

  10. 源码上看 .NET 中 StringBuilder 拼接字符串的实现

    前几天写了一篇StringBuilder与TextWriter二者之间区别的文章(链接).当时提了一句没有找到相关源码,于是随后有很多热心人士给出了相关的源码链接(链接),感谢大家.这几天抽了点时间查 ...