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...