約數:若整數n除以d的餘數為0,即d能整除n,則稱d是n的約數,n時d的倍數,記為d|n。
有正整數的質因數唯一分解可知任一正整數n可分解為n=
個數為:
(c1+1)*(c2+1)*.......*(cm+1)=
還有乙個是求這些因子的和:
(1+p1+p2^2+.......+p1^c1)*.......*(1+pm+pm^2+.......+pm^cm)=
求n的正約數集合—試除法
若在1到根號n中,若d是n的約數,則n/d<=根號n也是n的約數。因此只需要掃瞄1~根號n即可。
在競賽中經常用的是倍數法,比試除法效率要高很多。演算法複雜度為o(nlogn)
vecto***ctor[500010];
for(int i=1;i<=n;i++)
for(int j=1;j<=n/i;j++)
factor[i*j].push_back(i);
for(int i=1;i<=n;i++){
for(j=0;j倍數法的推論:1~n每個數的約數個數的總和大約為nlogn;
引理1:
1~n中最大的反質數,就是1~n中約數個數最多的數中最小的乙個。
引理2:
1~n中任何數的不同質因子都不會超過10個,且所有質因子的指數總和不超過30.
ACM訓練日誌
今天的比賽我們隊倆大佬出了倆題,後來過了時間又補了f題,總的來說我覺得今天訓練不簡單,被d題整的心態有點炸,後來于衡a掉了,貪心字首和,仔細看了隊友的 還是很有啟發的,附上原題和隊友的 原題 ac include using namespace std const int maxn 4e5 10 t...
訓練日誌 2018 10 11
昨天晚上打比賽,感覺手好生,題意看了半天,才看懂,然後就是tle,這回還好一點,馬上想到了,修改的演算法,但是細節沒處理好,wa了,找了好一會才發現 的錯誤,第二題就更艱辛了,一開始就跑偏了方向,以為是乙個找規律的事關鍵是以為自己找到了規律,開始麻煩的敲 敲完了才發現,有好多錯誤情況不在規律內,無奈...
4 27訓練日誌
關於三分法的一些知識總結 三分法主要用於求解乙個函式在某個區間內的極大 極小 值點首先對於乙個凹函式y f x 我們要求它的極小值點。首先確定它的極小值點所在的區間為 l,r 計算出兩個三分點 mid l r 2 mid2 mid r 2 其實這兩個點的位置是靈活的 此時 l mid f mid2 ...