q次詢問,每次給乙個x,問1到x的因數個數的和。
輸入描述:
第一行乙個正整數q ;接下來q行,每行乙個正整數 x
輸出描述:
共q行,每行乙個正整數表示答案
輸入 4
1 2
3 10
輸出 1
3 5
27 備註:
1<=q<=10 ,1<= x<=1e9
方法1:尤拉篩列舉
絕逼炸了,無論是空間還是時間
方法2:列舉因數
例如對於6,ans=6/1+6/2+6/3+6/4+6/5+6/6,方法是o(n)的,會t
方法3
對數進行分塊處理,即對方法2看進行改良,舉個例子,對於6,發現
ans=6/1+6/2+6/3+6/4+6/5+6/6,即ans=6+3+2+1+1+1。
所以可根據運算結果進行分塊處理,從而整理,以此優化演算法
上**
#include
#include
#include
#include
using
namespace
std;
long
long ans,m,x;
int main()
printf("%lld\n",ans);
}return
0;}
牛客練習賽25
我好菜啊。本來是奔著t恤去的 要求 ans ni 1 j i1 ans i 1n j i 1注意到我們並不需要什麼奇蹟銀殼,只需要交換列舉主體就可以 n做了 include include define rep i,st,ed for int i st i ed i typedef long lon...
牛客練習賽25 最長區間
其中表示left len right len可以用乙個len i 表示 len i 表示包括i的在i之前的最長遞增序列 用len陣列可以很方便得記錄到從x往左的left len等於多少 然後向由可以推出right len cnt i 計算每乙個長度i的序列有多少個 其中 乙個i的子長度的序列也會記錄...
牛客練習賽9
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 珂朵莉想每天都給威廉送禮物,於是她準備了n個自己的本子 她想送最多的天數,使得每天至少送乙個本子,但是相鄰兩天送的本子個數不能相同 珂朵莉最多送幾天禮物呢 第一行乙個整...