bzoj2440 中山市選2011 完全平方數

2022-02-27 15:43:08 字數 894 閱讀 9093

bzoj2440: [中山市選2011]完全平方數

大意:求第\(k\)個無平方因子數。

無平方因子數(square-free number),即分解之後所有質因數的次數都為1的數

聯想莫比烏斯函式,若\(n\)是答案,那麼有$$k=n-\sum_^n(1-|\mu(i)|)$$

考慮二分\(n\),check\([1,n]\)中有多少個無平方因子數。

根據容斥,列舉\([1,\sqrt]\)中的質數(容斥帶有 質數平方因子的數的個數),答案為

\([1,n]\)中,可用0個質數平方倍數表示的個數-(可用)1個質數平方倍數表示的個數+(可用)2個質數平方倍數表示的個數....

\(也就是n - \frac\)

那麼顯然,對於容斥係數可以用莫比烏斯函式\(\mu(i)\)表示

那麼答案也就是

\[\sum_^\rfloor}\mu(i)*\lfloor\frac\rfloor

\]另外,二分mid時會炸int

#include#include#includeconst int maxn = 200007;

#define int long long

inline int read()

int prime[maxn],mu[maxn];bool p[maxn];

void get_mu()

} } int check(int x)

return ret;

} main()

printf("%lld\n",ans);

} return 0;

}

bzoj2440 中山市選2011 完全平方數

time limit 10 sec memory limit 128 mb submit 2219 solved 1067 submit status discuss description 小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此,他也討厭所有...

BZOJ2440 中山市選2011 完全平方數

求第k個非完全平方數 先二分一下,問題變成1 x有多少個非完全平方數,知道平方數的集合,可以容斥一下 為了敘述方便,下文乙個數可代表其平方的倍數的集合 被乙個集合包含的只有質數,被兩個集合包含的是質因數個數為2的數 而且所有考慮的數都不含平方因子,可以發現和 一樣,被考慮進去的數的 值就是他的係數 ...

bzoj2440 中山市選2011 完全平方數

莫比烏斯函式的應用 首先二分答案轉成判定性問題,判定乙個 1,n 有多少數不是完全平方數的倍數。乙個數是完全平方數的充要條件是它包含了某個素數的平方。那麼應用容斥,符合條件的數的個數 n n4 n 9 n25 n36.容易發現,如果乙個數是某個素數的平方,那麼它的係數一定是 1 如果是兩個素數平方的...