CSP2019 D2T2 劃分 (單調佇列DP)

2022-05-07 01:42:06 字數 1337 閱讀 4764

洛谷傳送門

就是這道題搞我退役考場上寫了n^2 64分,結果爆成8-12分。直接gg。

考場上想到正解的寫法被自己否決了

題解傳送門(看到這道送我退役的題目⑧太想寫題解)

六行o(n2

)o(n

2)dp 8888

分**

for

(int i =

1; i <= n;

++i) a[i]

+= a[i-1]

; f[0]

= d[0]

=0;for

(int i =

1; i <= n;

++i)

for(

int j = i; j >=1;

--j)

printf

("%lld\n"

, f[n]

);

同樣六行o(n

)o(n

)dp 10010

0分**

#include

using

namespace std;

template

<

class

t>

inline

void

read

(t &x)

typedef

long

long ll;

const

int maxn =

40000005

;const

int mod =

1073741824

;int n, ty, stk[50]

, indx;

ll a[maxn]

;int q[maxn]

, pre[maxn]

, s, t;

int main ()}

for(

int i =

1; i <= n;

++i) a[i]

+= a[i-1]

; q[s=t=0]

=0;for

(int i =

1; i <= n;

++i)

__int128 ans =

0, tmp;

int now = n;

while

(now)

while

(ans)

while

(indx)

putchar

('0'

+stk[indx--])

;puts(""

);}

水題送我退役。

粗鄙之語

2劃分的實現

1.定義 2劃分,是指多個事物作為乙個集合s,把集合s的事物分成兩部分。而這樣的不同劃分有多少個,即為2劃分數。例如,s 則2劃分有 a b,c b a,c c a,b 2劃分數為3.2.演算法實現 假設s的大小為n,即有n個元素。那麼相對於s的不同劃分有 2的 n 1 次方 減 1 個。所以,用乙...

洛谷P5665 CSP2019 劃分

洛谷p5665 對於每乙個斷點,最後一段的和在所有合法解中都是最小的。顯然滿足條件的解是唯一的。構造序列 b bb,其中 b ib i bi 表示滿足條件的解中倒數第 i ii 段的和,並在序列 b bb 的末尾補上無限個 000。現在我們需要證明對於任意乙個不滿足條件的解,用同樣的方法構造出序列 ...

蚯蚓 NOIP2016D2T2 單調佇列

本題中,我們將用符號 c 表示對c向下取整,例如 3.0 3.1 3.9 3。蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓們沒辦法,蛐蛐國王只好去請神刀手來幫他們消滅蚯蚓。蛐蛐國裡現在共有n只蚯蚓 n為正整數 每只蚯蚓擁有長度,我們設第i只蚯蚓的長度為a i i 1,2,n 並保證所有的長度都是非...