bzoj2440 中山市選2011 完全平方數

2022-09-18 10:30:33 字數 778 閱讀 7888

莫比烏斯函式。

完全平方數的倍數有如下特點。

1.首先不是質數的完全平方數可以忽略不計,因為它總是乙個質數的完全平凡數的倍數。

2.每個質數i的完全平方數的倍數的個數為(n/(i*i))。

3.每對質數i,j的完全平方數的倍數已經在i和j時被重複統計了倆次,個數為(n/((i*j)^2))。

這像什麼?

這就是乙個裸的莫比烏斯函式。

對於每個數i,它對答案的貢獻就是μ[i]*(n/(i*i))。

所以預處理莫比烏斯函式的值,然後二分答案就可以了。

#include#include

#include

#include

using

namespace

std;

const

int maxn = 100000

;int mu[maxn+10],prime[maxn+10

],cnt;

bool mark[maxn+10

];void

predo()

for(int j=1,t;j<=cnt;j++)

mu[t]=-mu[i];}}

}long

long calc(long

long

x) long

long

n,l,r,mid;

intmain()

printf(

"%lld\n

",l);

}return0;

}

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 如果是兩個素數平方的...