Top Secret Task dp 滾動陣列

2021-09-23 06:13:07 字數 1006 閱讀 3026

傳送門: 題目

dp[i][j][k] 表示 考慮到第i個數 計算前j個數的和 進行了k次操作

則有若不把第i個數放入前j個數中

dp[i][j][k] = dp[i-1][j][k]

若把第i個數放入前j個數中

至少需要把第i個移到第j個,即進行i-j次操作

if(k >= i-j)

dp[i][j][k] = dp[i-1][j-1][k-(i-j)]

然而如果直接開陣列,則要開dp[151][151][151*151]這麼大 這顯然是不可取的

又因為 dp[i][ ][ ] 始終只和 dp[i-1][ ][ ] 有關,所以考慮滾動陣列

即用 dp[i%2][ ][ ] 表示 dp[i][ ][ ]

話不多說,上**:

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int inf=

0x3f3f3f3f

;int n,k,s;

ll dp[2]

[155][

155*

155]

;ll a[

155]

;int

main()

}}ll ans=inf;

for(

int k=

0;k<=

min(s,n*

(n-1)/

2);k++

) ans=

min(dp[n%2]

[k][k]

,ans)

;printf

("%lld\n"

,ans)

;return0;

}

滾動聯動 單獨滾動與文件滾動

我們的需求是做乙個文件的頁面,需要有標題與內容區。左邊的標題需要根據內容區來滾動,內容區滾動也需要左邊標題區的高亮。這些都是普通文件需要的。文件標題比較多的時候還需要的是標題區的滾動,標題區滾動是因為當標題過多需要有滾動條,內容區的滾動需要把左邊標題區的高亮展示出來。效果看 dp.bytedance...

ListView滾動翻頁 滾動載入

關鍵 1.滾動載入 listview.setonscrolllistener new onscrolllistener override public voidonscroll abslistview view,int firstvisibleitem,intvisibleitemcount,int...

Qt QLabel 文字滾動 滾動字幕

1.實現效果 做了兩種實現方式,畫素滾動比較順滑。支援qlabel樣式表設定字型顏色邊框等。支援實時縮放。2.簡述 實現思路1 準備足夠顯示滿寬的字元,每次刪除最左邊的乙個字元,不夠顯示的時候,在後邊追加字元。實現思路2 畫乙個寬度是label寬度 文字寬度的文字框,從x 0開始,每次將文字框的起始...