題意:完全平方數是指含有平方數因子的數。求第ki個非完全平方數。
解法:比較明顯的二分,getsum(int middle)求1-middle有多少個非完全平方數,然後二分。求1-middle的非完全平方數個數可以用總數減掉完全平方數個數。計算完全平方數的個數用容斥:
首先加上n/(2*2)+n/(3*3)+n/(5*5)+n/(7*7)...+...然後減掉出現兩次的,然後加上三次的...奇加偶減。這就是mou的原型,用mou數組計算很簡單;
代碼:
/****************************************************** * @author:xiefubao *******************************************************/ #pragma comment(linker, "/STACK:102400000,102400000") #include#include #include #include #include #include #include #include #include