11 3清北集訓T1work dp 單調佇列優化

2021-08-30 19:47:55 字數 1132 閱讀 3062

subtask1 暴力dp o(nk)

#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const ll inf=0x3f3f3f3f;

inline ll read()

while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();

return x*f;

}const ll n=1e5+100;

ll f[n];

ll sum[n];

ll a[n];

int main()

f[0]=0;

for(i=1;i<=n+1;i++) }

cout我們發現後面那一坨可以用單調佇列維護(相當於乙個長度為k的滑動視窗)關鍵字為dp[i]-sum[i] (自己用字首和減一下就出來了)

清北集訓Day3T1 轉換

這題可能是我與正解裡的最近的一次了,可以還是sb的把正解叉了。正解其實比較顯然 因為 f x 只有81個取值,所以我們可以列舉 f x 然後計算 x 再判斷 x 是否可以轉化為 f x 剛開始以為乙個 f x 會對應很多 x 所以這麼列舉是錯的。但實際上我們在列舉 f x 的時候並不關注 f x 與...

2016國慶清北Day2T1

pa 題目描述 漢諾塔公升級了 現在我們有n個圓盤和n個柱子,每個圓盤大小都不一樣,大的圓盤不能放在小的圓盤上面,n個柱子從左到右排成一排。每次你可以將一 個柱子上的最上面的圓盤移動到右邊或者左邊的柱子上 如果移動之後是合法的 話 現在告訴你初始時的狀態,你希望用最少的步數將第i 大的盤子移動到第i...

清北學堂 D5 T1 cut

可以發現,第一刀必須把兩個部分切成斐波那契數列兩項的倍數,然後才能避免切不下去的情況。然後我們就可以o n 列舉約數d,判斷n d是否是斐波那契數列中的一項,然後統計答案,再對m做同樣的,就好了。include include include include include include defi...