千家信息网最后更新 2025年01月20日java怎么解决欧拉函数和莫比乌斯反演问题
本文小编为大家详细介绍"java怎么解决欧拉函数和莫比乌斯反演问题",内容详细,步骤清晰,细节处理妥当,希望这篇"java怎么解决欧拉函数和莫比乌斯反演问题"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
题意:给定a,b,c,d,k
x属于[1 , c],y属于[1 , d],求满足gcd(x,y)=k的对数。其中和算相同。
解法一:不妨设c那么假如y<=c/k,那么对数就是y从1到c/k欧拉函数的和。如果y>c/k,就只能从[ c/k+1 , d ]枚举,然后利用容斥。详见代码:
/********************************************************* file name: hdu1695.cpp author : kereo create time: 2015年02月11日 星期三 18时08分43秒*********************************************************/#include#include#include#include#include#include
解法二:莫比乌斯反演。
其中"设F(a,b,k)表示有多少组x≤a,y≤b,且Gcd(a,b)≥k"的"Gcd(a,b)>=k"应该是k | Gcd(x,y)。
/********************************************************* file name: hdu1695.cpp author : kereo create time: 2015年02月12日 星期四 09时08分41秒*********************************************************/#include#include#include#include#include#include
读到这里,这篇"java怎么解决欧拉函数和莫比乌斯反演问题"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。