bzoj 2440 完全平方數
題意:找出第k個不是完全平方數的正整數倍的數。
例如 4 9 16 25 36什麼的
通過容斥原理,我們減去所有完全數 4有n/4個,但是先36這種會被重複減去,
所有我們還需要加上類似36的數,然後你會發現這些數前面的符號和他們開根號的
莫比烏斯函式一樣
資料很大有1e9,
如果先進行預處理再從頭到尾找感覺不現實,考慮使用二分,列舉mid,
然後每次查詢1到mid中不是完全平方數的正整數倍的數的個數
orz:機制的二分使用
#include #include #include #include #include #include #include #include typedef long long ll;
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 1e5;
int tot;
int is_prime[maxn];
int mu[maxn];
int prime[maxn];
void moblus()
for(int j = 0; j < tot && i*prime[j] < maxn; j++)
else}}
}ll get_(ll mid)
return num;
}int main()
printf("%lld\n",l);
}}
BZOJ 2440 莫比烏斯函式
題目鏈結 description 小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此,他也討厭所有是完全平方數的正整數倍的數。然而 這絲毫不影響他對其他數的熱愛。這天是小x的生日,小 w 想送乙個數給他作為生日禮物。當然他不能送一 個小x討厭的數。他列出了...
BZOJ 2440 莫比烏斯函式的應用
題意 全然平方數是指含有平方數因子的數。求第ki個非全然平方數。解法 比較明顯的二分,getsum int middle 求1 middle有多少個非全然平方數,然後二分。求1 middle的非全然平方數個數能夠用總數減掉全然平方數個數。計算全然平方數的個數用容斥 首先加上n 2 2 n 3 3 n...
bzoj 2440 莫比烏斯反演應用
2440 中山市選2011 完全平方數 time limit 10 sec memory limit 128 mb submit status discuss description 小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此,他也討厭所有是完全平...