DP 三校聯考1017T3

2021-08-29 05:02:43 字數 634 閱讀 5944

考場上這題做了我兩個小時。。。果然第一步都錯了。。。

首先,所謂的絕對值其實可以用最優性忽略!!!!

即:|a-b|=max(a-b,b-a)

所以,不必考慮到底誰大誰小,在最優策略中,一定是合法的。

然後就很簡單了:每乙個位置的貢獻分別可能為2,0,-2(開頭末尾可能為-1,1)

一段連續的2或-2就是一段。這麼搞一下dp就行了

#include

#include

#include

#define sf scanf

#define pf printf

#define maxn 30010

#define maxk 210

using

namespace std;

int dp[maxk][5

];int n,k;

intmain()

}}pf(

"%d"

,max

(dp[k][1

],dp[k][3

]));

}

多校聯考2 T3 排列 DP

dp 對於乙個排列,考慮相鄰的兩個元素,如果後面乙個比前面乙個大,表示這個位置是上公升的,用 i 表示,反之這個位置是下降的,用 d表示。如排列 3,1,2,7,4,6,5 可以表示為 diidid。現在給出乙個長度為 n 1的排列表示,問有多少種 1 到n 的排列滿足這種表示。乙個字串 s,s 由...

10 17T7 三進製狀壓DP

tyvj兩周年慶典要到了,sam想為tyvj做乙個大蛋糕。蛋糕俯檢視是乙個n m的矩形,它被劃分成n m個邊長為1 1的小正方形區域。可以把蛋糕當成n行m列的矩陣 蛋糕很快做好了,但光禿禿的蛋糕 肯定不好看!所以,sam要在蛋糕的上表面塗抹果醬。果醬有三種,分別是紅果醬 綠果醬 藍果醬,三種果醬的編...

線段樹 資料結構 四校聯考1024T3

沒過是因為沒看。這題其實相當水。重新定義一下逆序對 每個點的貢獻為,其後面的,比它小的數的個數。然後這樣一來,每次排過序之後的點,其後面就不可能有比它小的值了,直接忽略以後排序又排到它的情況。include include include include define sf scanf define...