模擬88 題解

2022-03-16 19:19:09 字數 647 閱讀 5544

仔細看題,會發現問題是隨便交換位置。

為了使答案更小,顯然可以進行排序後$dp$。

有$dp_=dp_+(a[i]-a[j])^2$。

拆開平方式會發現是最簡單的斜率$dp$式,而且$a$陣列是單調的。

所以用單調佇列維護一下凸包就完了。

因為在維護凸包的過程中需要計算交點,所以避免除$0$,要$unique$一下。

模擬題。

設$f_$表示$i$個色子,投出$j$的概率。

$dp_$表示$i$步之後,屬性階分別為$j,k,u,v$的概率。

按照題中說的做,暴力轉移就完了。

不需要關注失敗的情況,只要最後用$1$減去成功的概率就完了。

觀察資料範圍,發現似乎是狀壓題。

暴力狀壓複雜度不是很對,所以可以分組狀壓。

個數相同的球是等價的,可以分在同一組裡,同一組內的狀態可以排序,大大減少狀態數。

所以最終的狀態數只有一萬多,暴力轉移就完了。

然而正解更加優秀一些。

實際上問題可以不斷地劃分為子問題,而且只需要關注最後一位的小球個數,並不關注每個小球屬於哪一組。

所以設$f_$,表示1個球的剩下$i$個,2個球的剩下$j$個,3個球的剩下$k$個,最後乙個的個數為$d$。

$o(1)$轉移,複雜度是$o(n^3)$的。

GDOI2016模擬8 8旋轉

alice和bob發明了乙個新的旋轉遊戲。首先,bob給定n個數組成的序列,並把該序列平均分配成若干個塊,每塊正好包含k個數 k能整除n 第一塊由第1到第k個數構成,第二塊由第k 1個數到第2k個數構成,以此類推。接著,bob要求alice對這個序列進行一系列操作,操作有以下兩種 1.把每塊裡面的數...

JZOJ5242 GDOI2018模擬8 8 矩陣

description 給出乙個n m 的01 矩陣,求其中有多少個連續子矩陣,使得其面積大於等於k,且其中不包含1。input 第一行為用空格隔開的三個整數n,m,k。分別表示矩陣的行數,列數和子矩陣的最小面積。接下來的n 行每行為用空格隔開的m 個整數,為題目中給出的矩陣。output 輸出一行...

模擬17 題解

t1 a.入陣曲 60 演算法 維護一下某一列的從第一行到這一行和二維字首和 然後列舉上下左右邊界,o n 4 100 演算法 省掉左右邊界的列舉,改為從左向右掃一邊,記錄總和 k的餘數,並放入桶中,可以發現,如果這個值出現過,那說明這個位置的總和減去那個位置的差 即這個區間 是k的正倍數 t2又是...