豫sf5072

关键词:统计n个数种与x互素/不互素的个数

解决方案:通过对x素因子分解得到不同素因子p1,p2...pk,问题转化为n个数中不被p1,p2...pk中任何一个数整除(与x互素)/至少被p1,p2...pk中一个数整除(与x鈈互素)的个数

心得:通过素因子分解将互素问题转化为整除问题(利用素数非整除即互素的性质)

题意:求n个数中两两不互素或两两互素的三元组数目

称满足上述性质的三元组为P三元组

解决非P三元组的计数问题有两种方法

法一:先求出数组中与每个a[i]互素的个数f[i],这个最後再求假设f[i]已知,我们用正难则反的思路求P三元组数目任意一个非P三元组都既存在互素,又存在不互素的数对因此我们可以对每个a[i],从数组中找出与a[i]互素和不互素的数各一个这样就构成了一个非P三元组,而每个非P三元组仅对应两个a[i]选择因此ans=sum{

C(f[i],2)*3,1<=i<=n },在上述计算中三元组視为有序因此最后还要除以3!才是最终结果

最后化简后发现与法一结果相同

最后的最后就是计算f[i]了,这真是个经典的结论也是用容斥原理来计算的。与欧拉公式的计算过程本质相同只不过欧拉公式结果可以化简,而本题结果无法化简具体计算过程见代码  

注:容斥原悝跑得太慢,本体特别容易超时这题hdu我都刷了1页半了,对的次数不超过5次 Orz...

拓展:求与x互素的数的个数

豫C3519警车牌估值

车牌号码:豫C3519警
车牌估值:5072人民币
车牌归属:河南省 洛阳市
回头指数:

豫C3519警车牌估值评估证书在线订做

(提示:右键可将图片另存至本地)

我要回帖

 

随机推荐