[luogu5176] 公约数
0|1题目描述
求
n∑i=1m∑j=1p∑k=1gcd(i⋅j,i⋅k,j⋅k)×gcd(i,j,k)×(gcd(i,j)gcd(i,k)×gcd(j,k)+gcd(i,k)gcd(i,j)×gcd(j,k)+gcd(j,k)gcd(i,j)×gcd(i,k))
由于答案可能过大,输出答案对10^9+7109+7取模的值。
0|1输入输出
第一行一个正整数T,为数据组数。
下面T行,每行3个整数,为n,m,p。
0|1输出格式
共T行,每行一个整数,为答案。
0|1输入输出
0|1输出样例
0|1Solution
挺巧妙的一个题。
注意到gcd的一个性质,我们只考虑一个质因子,设i=px,j=py,k=pz,可以得到:
gcd(i,j)=pmin(x,y),gcd(i,j,k)=pmin(x,y,z)
那么根据这个我们可以尝试着化简题目给出的式子,通分之后把分母提出来,和前面两项乘起来就是:
res=gcd(i,j,k)×gcd(i⋅j,j⋅k,k⋅i)gcd(i,j)×gcd(j,k)×gcd(i,k)
由于这里只考虑一个质因子,我们可以两边取log,然后设min(x,y,z)=x,即x为最小值,这对答案是没有影响的,那么式子可以变成这样:
logp(res)=2x+min(y,y+z−x,z)−(2x+min(y,z))
可以发现y+z−x⩾y,y+z−x⩾z,所以可以得到:
logp(res)=2x+min(y,z)−(2x+min(y,z))
所以:
logp(res)=0,res=1
所以我们可以惊奇的发现,前面两项和分母约掉了,剩下的式子写出来就是:
ans=∑i∑j∑kgcd(i,j)2+gcd(j,k)2+gcd(i,k)2
这个直接大力反演就好了。
__EOF__
作 者:Hyscere
出 处:https://www.cnblogs.com/hbyer/p/10512796.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· 从 Windows Forms 到微服务的经验教训