20180824牛客練習賽25 A

2021-08-25 19:38:05 字數 798 閱讀 9451

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個自己的本子 她想送最多的天數,使得每天至少送乙個本子,但是相鄰兩天送的本子個數不能相同 珂朵莉最多送幾天禮物呢 第一行乙個整...