借鑑:無法估計他的值時最好用無符號的long long
除法分塊:
區塊值 區塊始末
舉個例子 :12
次數是有12/n算出來的 像當n==5時 12/5==2,也就是說5出現了兩次
[1]:12次 [2] :6次 [3] : 4次 [4] :3次
[5]: 2次 [6]: 2次 [7] : 1次 [8]: 1次
[9]: 1次 [10] :1次 [11] :1次 [12] 1 次
left是當前區塊的開始 ,right 是當前區塊的終點
區塊是按出現次數分的,像出現次數為12次 分乙個區塊 ,這個區塊有1個元素 :1
出現次數為6次 分乙個區塊, 這個區塊有1個元素 :2
出現次數為4次 分乙個區塊, 這個區塊有1元素 : 3
出現次數為3次 分乙個區塊 , 這個區塊有1個元素 4
出現次數為2次 分乙個區塊, 這個區塊有2個元素 5 6
出現次數為1次,分乙個區塊 ,這個區塊有6個元素:7 8 9 10 11 12
可以發現兩個規律:
1: 越小的數分在區塊值大的區塊
2: 同一區塊內的元素是按等差序列分布的。
可以按開始元素小的開始列舉
left是區塊的開始元素,right是區塊的結束元素
n/left 該區塊的值
區塊值也就是區塊內的元素總共出現的次數
#include#includeusing namespace std;
unsigned long long get_sum(unsigned long long n)
return ans;
}int main()
區間內因數和Fear Factoring
大意就是給出乙個區間,求區間內所有數的因數的和 題目 思路,對r求根,然後列舉x 2到根 看區間有多少數字是x的倍數,在這個過程中,如果x的另一半是小於k的 那麼不用管,大於k的就加上 然後列舉區間內各個數字,1和本身,1在之前沒有處理過,要加上。但是本身如果小於k,說明這個本身以前處理過,如果大於...
真除法,floor除法,傳統除法
python3.0 一直執行真除法 eg 4 2 2.0 都帶小數點,和算式中有沒有浮點數無關 python3.0 執行floor除法 一定執行截斷,得到的不是準確值。有浮點型返回浮點型,無浮點型返回int型在python2.6或者之前,對於整數運算會省去小數部分,而對於浮點數運算會保持小數部分在p...
除法 傳統除法 floor和真除法
除法 傳統除法 floor和真除法 有三種型別的除法操作符,其中一種操作符在python 3.0 中有了變化 x y 傳統除法和真除法。在python2.7之前,這個操作對於整數會省去小數部分,對於浮點數會保持小數部分 在python 3.0版本中會變成真除法 無論任何型別都會保持小數部分 x y ...