题意:

定义函数fr(n)fr(n)f_r(n)在r=0r=0r=0时为整数对(p,q)(p,q)(p,q)满足p∗q=np∗q=np*q=n且gcd(p,q)=1gcd(p,q)=1gcd(p,q)=1的有序数对个数

在r≥1r≥1r\ge 1时,fr=∑u∗v=nfr−1(u)+fr−1(v)2fr=∑u∗v=nfr−1(u)+fr−1(v)2f_r=\sum_{u*v=n}\frac{f_{r-1}(u)+f_{r-1}(v)}2

qqq组询问,每次给出r,n" role="presentation" style="position: relative;">r,nr,nr,n求fr(n)mod109+7fr(n)mod109+7f_r(n)\mod 10^9+7

q≤106,0≤r≤106,1≤n≤106q≤106,0≤r≤106,1≤n≤106q\le10^6,0\le r\le10^6,1\le n\le10^6


fr(n)=∑d|nfr−1(d)fr(n)=∑d|nfr−1(d)f_r(n)=\sum_{d|n}f_{r-1}(d)

⇒fr=fr−1×1⇒fr=fr−1×1\Rightarrow f_r=f_{r-1}\times1

这里××\times表示狄利克雷卷积

然后又有f0(n)=2σ0(n)f0(n)=2σ0(n)f_0(n)=2^{\sigma_0(n)}

所以f0f0f_0是积性函数,所以frfrf_r也是积性函数

n=∏pkii⇒fr(n)=∏fr(pki)n=∏piki⇒fr(n)=∏fr(pki)n=\prod p_i^{k_i} \Rightarrow f_r(n)=\prod f_r(p^{k_i})

所以只要预处理出所有的fr(pj)fr(pj)f_r(p^j)就ok了

设dpi,j=fi(pj)=∑d|pjfi−1(pj)=∑jk=0fi−1(pk)=∑jk=0dpi−1,kdpi,j=fi(pj)=∑d|pjfi−1(pj)=∑k=0jfi−1(pk)=∑k=0jdpi−1,kdp_{i,j}=f_i(p^j)=\sum_{d|p^j}f_{i-1}(p^j)=\sum_{k=0}^j f_{i-1}(p^k)=\sum_{k=0}^j dp_{i-1,k}

前缀和优化一下就okokok了

#include<cmath>
#include<cstdio>
#define re register int
#define fp(i,a,b) for(re i=a,I=b;i<=I;++i)
#define file(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)
char ss[1<<17],*A=ss,*B=ss;
inline char gc(){return A==B&&(B=(A=ss)+fread(ss,1,1<<17,stdin),A==B)?-1:*A++;}
template<class T>inline void sdf(T&x){char c;T y=1;while(c=gc(),(c<48||57<c)&&c!=-1)if(c=='-')y=-1;x=c^48;while(c=gc(),47<c&&c<58)x=(x<<1)+(x<<3)+(c^48);x*=y;
}
char sr[1<<21],z[20];int C=-1,Z;
template<class T>inline void we(T x){if(x<0)sr[++C]=45,x=-x;while(z[++Z]=x%10+48,x/=10);while(sr[++C]=z[Z],--Z);sr[++C]='\n';if(C>1<<20)fwrite(sr,1,C+1,stdout),C=-1;
}
const int N=1e6+5,M=1e3+5,P=1e9+7;
int f[N][22],s[N][22],pr[M],is[M];
inline int pl(re x,re y){x+=y;return x-=x>=P?P:0;}
inline int solve(re r,re n){re ans=1,m=sqrt(n),t;fp(i,1,pr[0]){if(n==1||pr[i]>m)break;t=0;while(n%pr[i]==0)n/=pr[i],++t;ans=1ll*ans*f[r][t]%P;}if(n>1)ans=1ll*ans*f[r][1]%P;return ans;
}
int main(){#ifndef ONLINE_JUDGEfile("oi");#endiffp(i,2,1e3){if(!is[i])pr[++pr[0]]=i;for(re j=1,x;j<=pr[0]&&(x=i*pr[j])<=1e3;++j){is[x]=1;if(i%pr[j]==0)break;}}f[0][0]=s[0][0]=1;fp(i,1,20)s[0][i]=s[0][i-1]+(f[0][i]=2);fp(i,1,1e6)fp(j,0,20){f[i][j]=s[i-1][j];s[i][j]=pl(j?s[i][j-1]:0,f[i][j]);}re r,n,T;sdf(T);while(T--)sdf(r),sdf(n),we(solve(r,n));fwrite(sr,1,C+1,stdout);
return 0;
}

[CodeForces757E]Bash Plays with Functions相关推荐

  1. Codeforces757E.Bash Plays With Functions(积性函数 DP)

    题目链接 \(Description\) q次询问,每次给定r,n,求\(F_r(n)\). \[ f_0(n)=\sum_{u\times v=n}[(u,v)=1]\\ f_{r+1}(n)=\s ...

  2. [Codeforces757E]Bash Plays with Functions数学

    这题推一吨东西出来就能做了 首先发现 F0(x) F_0(x)是 2质因子个数 2^{质因子个数} 这个东西是完全积性函数,当然也是非完全积性函数 把式子化简,就能得到 Fr(x) F_r(x)也是非 ...

  3. codeforces 757e Bash Plays with Functions

    题意: 给你两个数 n和r 可以做r次分解 当r大于0 n可以分解成两个因子u和v   u*v=n 当r 等于0 n分解出的两个因子的gcd要为1 如题意所给的公式来计算最终结果 思路: 仔细观察 在 ...

  4. CodeForces 757 E.Bash Plays with Functions(积性函数+dp)

    Description 定义f0(n)f_0(n)为满足p⋅q=n,gcd(p,q)=1p\cdot q=n,gcd(p,q)=1的有序对(p,q)(p,q)对数,定义fr+1(n)=∑u⋅v=nfr ...

  5. (Codeforce 757)E. Bash Plays with Functions(积性函数)

    题目: 样例输入: 5 0 30 1 25 3 65 2 5 4 48 样例输出: 8 5 25 4 630 题意: 我们先来分析r=0的情况,假如我们现在求f0(n),n=p1^a1*p2^a2*- ...

  6. shell 批量添加用户健壮版

    网上传说,曾经有一道迅雷的笔试题,批量添加用户.做法很简单,有个小小的知识点.如何无交互的为用户设置密码.有两种方案:1.expect 2.passwd --stdin .第一种通用,第二种非redh ...

  7. linux脚本编程有参函数,shell脚本编程进阶:函数

    一.函数介绍 函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程: 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一 ...

  8. 【学习笔记】狄利克雷卷积

    基本形式 f,gf,gf,g 函数卷起来写作 f∗g(n)f * g (n)f∗g(n),等于 ∑d∣nf(d)g(nd)\sum_{d \mid n} f (d) g (\frac{n}{d})∑d ...

  9. bash的常见命令及文章查看命令

    回顾: FHS,命令及bash命令历史 FHS: /bin,/sbin, /lib, /lib64, /etc /home,/root /boot /media,/mnt /proc,/sys /tm ...

最新文章

  1. my02_Atlas mysql5.7安装配置
  2. springboot多数据源配置_SpringBoot-配置多数据源
  3. netty系列之:在netty中使用protobuf协议
  4. 新版ipados可以编辑C语言吗,iPadOS新增了五个有用的功能,看你需不需要
  5. idea修改完jdbc文件后没有更新_JDBC+MySQL入门案例
  6. 关于premake4
  7. python上三角九九乘法表_用5行Python代码打印九九乘法表
  8. 从一个案例看MVC中DataContext和UpdateModel的工作原理(详解UpdateModel/SubmitChanges错误)...
  9. 开启人才进阶之旅,鲲鹏开发者技术沙龙点燃计算行业激情
  10. threejs 模型隐藏后不显示_教师资格证面试报名后显示“待审核”?不做这一步报名白费!...
  11. php论坛权限设置,php – 如何实现论坛权限
  12. 使用celery出现async的报错的解决方法
  13. 约瑟夫问题python列表_Python实现约瑟夫问题
  14. ligerui的使用心得
  15. 解决拉取远程分支后出现.xcodeproj Couldn't load project的问题
  16. 页面加载缓冲的login
  17. 环境搭建以及一些命令的记录
  18. 目标检测tricks(基于detectron2)
  19. 基于angularjs的单页面实例_angularjs实例网站
  20. AVR单片机网址推荐

热门文章

  1. 提取WORD中的所有InlineShape图片并保存成文件
  2. 写出下列程序运行结果
  3. ftp工具 绿色,细数3款绿色 ftp工具
  4. 【转】很有哲理的句子,每天都值得看一遍
  5. 学习笔记之——Java 8
  6. 固网服务器win7系统驱动,固网HU-4608驱动
  7. FTP服务器、部署YUM仓库与NFS共享服务
  8. Mac安装Java反编译工具JD-GUI(解决打不开问题)
  9. 天津大学仁爱学院ACM队简介
  10. 虚拟机:虚拟机三种网络连接