zoj 3435 spoj 7001 莫比乌斯反演

zoj 3435题意:给出3个数a,b,c, 定义一个立方体,这个立方体有a*b*c个点,每个点的坐标都是整数(x,y,z),求经过坐标(1,1,1)和另外任意一个点(x1,y1,z1)的不同的直线有多少条。限制:2 <= a,b,c <= 1e6; 有200组数据。思路:有3种情况:1. x1,y1,z1都大于等于2:问题就变成求1 <= x <= a-1 && 1 <= y <= b-1 && 1 <= z <= c-1 && gcd(x,y,z)=1的三元组有多少对。用莫比乌斯反演来做。设f(k)为gcd(x,y,z)=k的三元组(x,y,z)的数目,,设F(k)为gcd(x,y,z)为k的倍数的三元组(x,y,z)的数目,所以F(k)=floor((a-1)/k)*floor((b-1)/k)*floor((c-1)/k),然后加上一个分段就可以解决了。2. x1,y1,z1中有1个为1然后问题就退化成2为的互质问题了,同样可以用莫比乌斯反演来做。3. x1,y1,z1中有2个为1有3条直线。分别考虑好3种情况后加起来即可。spoj 7001 和上面那道题差不多

你可以选择这样的“三心二意”:信心恒心决心;创意乐意。

zoj 3435 spoj 7001 莫比乌斯反演

相关文章:

你感兴趣的文章:

标签云: