nowcoder 218398 小G的約數

2021-10-21 15:14:26 字數 1018 閱讀 9562

——>點我跳轉<——

定義 f(n) 是 n 的約數的和,然後 g(n) 則是 1~f(n) 的和。

然後問你 g(g(n)) 是多少。

首先,我們會想到,暴力算是不行的。

然後我們考慮優化算 g(n

)g(n)

g(n)

怎麼弄。

我們先看約數有什麼特別的地方,那有約數,又有字首和,那如果對於乙個數 x

xx,它會是哪些數的因子呢?

x ,2

x,3x

,4x,

...,

kx

x,2x,3x,4x,...,kx

x,2x,3

x,4x

,...

,kx(k=⌊

nx

⌋k=\left\lfloor\dfrac\right\rfloor

k=⌊xn​

⌋,也就是會有多少個數含有這個因子)

但是你會想到,就算你每次只列舉因子,你還是會超時。

(g

(50000)=

2056198403

g(50000)=2056198403

g(5000

0)=2

0561

9840

3)然後你會從整除向下取整想到乙個叫做整除分塊的東西。

然後你會想到在乙個塊中,它的 k

kk 都是一樣的,然後因子的大小是每次加一。

那這就是乙個等差序列,可以 o(1

)o(1)

o(1)

搞。那塊的個數是 n

\sqrt

n​,那時間就過去了。

#include

#define ll long long

using

namespace std;

ll n;

ll g

(ll now)

return re;

}int

main()

nowcoder 218399 小G的LY數對

點我跳轉 有兩個陣列,要你各選乙個數,使它們異或的值在二進位制中恰好有兩位是 1。問你有多少種選法。我們看到異或,考慮從位數處理。看到只要兩位不同,我們可以考慮用這乙個方法 類似折半?把兩邊每個數對於每一位取反得到的數互相匹配,看有多少個相同的且在兩邊的。那直接匹配相同我們可以用雜湊表來實現。那接著...

小G的約數

題意 題意 題意 小 g定 義了兩個 函式f n 為n 的約數和 小g定義了兩個函式f n 為n的約數和 小g定義了兩 個函式f n 為 n的約數 和 g n f 1 f 2 f n 1 f n 求g g n g n f 1 f 2 f n 1 f n 求g g n g n f 1 f 2 f n ...

NOIP 模擬題 小G的城堡

檔名 輸入檔案 輸出檔案 時間限制 空間限制 castle.pas c cpp castle.in castle.out 1s 128mb 題目描述 小 g 家有一座城堡。城堡裡面有 n 個房間,每個房間上都寫著乙個數字 p i 小 g 拉著幾個小夥伴在城堡裡面玩耍,他們約定,如果某個人當前站在 i...