数论+容斥原理 --hdu 上的几题

hdu 2841 :题意:是从(0,0)点可以看到的最多数目的树。

思路:易知对(x1,y1),(x2,y2),两点,若x1/y1=x2/y2,则只能看到一个,于是我们求最简的(x1,y1),则其他点可以表示为(K*x1,k*y1),由此转化为求x属于[1,m],y属于[1,n],gcd(x,y)=1的对数。可以枚举[1,n]的素因子用容斥原理求出。

hdu4135: 题意:是求[A,B]区间中与互质的数的个数。

思路: 分解C,得到素因子,运用容斥原理,即可。

hdu1796:题意: 给定一个集合M,和数n.求小于n的数中能被集合中的若干个数整除的数的个数。

思路:很明显的容斥原理,但是处理时注意,多个数能被n整除,则他们的最小公倍数能被n整除,有重复,可以用容斥原理。

hdu 1695:题意:给定区间[1,b],[1,d],k,求x属于[1,b],y属于[1,d]使得gcd(x,y)=k;

思路:gcd(x,y)=k的意思是,x,y去除k这个因子后,两者是互质的,于是我们就把此问题转换为求[1,x/k],[1,y/k],两个数互质的问题了,要注意的是此题数对是有序的,于是假设得到区间[1,m],[1,n],n>=m,则对于[1,m]我们用欧拉函数求,[m+1,n],我们用容斥原理求。

你可能感兴趣的:(数学)