美味果凍(牛客練習賽53B)

2021-10-17 05:19:59 字數 995 閱讀 4549

∑i=

1n∑j

=1ii

×⌊ij

⌋j∑i

=1n∑

j=in

j×⌊j

i⌋

i\sum_ ^ \sum_ ^ i \times \lfloor \frac \rfloor ^ j\\ \sum_ ^ \sum_ ^ j \times \lfloor \frac \rfloor ^ i\\

i=1∑n​

j=1∑

i​i×

⌊ji​

⌋ji=

1∑n​

j=i∑

n​j×

⌊ij​

⌋i接下來只需要從小到大列舉i

ii,因為有j∈[

ki,(

k+1)

i],⌊

ji⌋=

kj \in[ki, (k + 1)i], \lfloor \frac \rfloor = k

j∈[ki,

(k+1

)i],

⌊ij​

⌋=k,所以這裡有乙個分塊性質,差分字首和即可得到。

最後在得到的陣列中乘上乙個陣列下標,在求一次字首和即是答案了。

#include

using

namespace std;

const

int n =

3e6+

10, mod =

1e9+7;

int f[n]

, g[n]

, n;

void

init()

for(

int i =

1; i < n; i++)}

for(

int i =

1; i < n; i++)}

intmain()

printf

("%d\n"

, ans)

;return0;

}

牛客練習賽53 ABC

a 簡單dp include define ll long long using namespace std const ll mod 1e9 7 ll d 1000000 2 ll n intmain cout d n 1 d n 0 mod return0 b 分塊 include define...

牛客練習賽4 B

思維題,把 i2 j2 ai2 aj2 絕對值符號去掉後,我們設i2 j2 ai2 aj2 j2 i2 aj2 ai2 j2 aj2 i2 ai2 或者 i2 j2 ai2 aj2 j2 i2 aj2 ai2 ai2 i2 aj2 j2 原式化簡後只有這兩種形式,那麼我們可以設定兩個陣列a n b ...

牛客練習賽69 B

題意 給定n nn個數,乙個x xx表示可以劃分成最多x xx個串,乙個y yy表示在乙個串中最多選擇y yy個數。最後求 i 1x j 1yv al i j sum x sum yval i,j i 1x j 1 y va l i,j v al i,j val i,j val i,j 為 將n n...