洛谷 2187 小Z的筆記

2022-07-23 17:27:17 字數 788 閱讀 4816

【題解】

dp.  設f[i]表示前i個字母,保留第i個字母,最多可以保留多少個字母;設g[i]為當前字母為i的位置對應的f的最大值。

轉移方程就是f[i]=max(f[i], g[j]+1) (j與s[i]不衝突)  ,  g[s[i]]=max(g[s[i]], f[i]) .

1 #include2 #include3 #include4

#define ll long long

5#define rg register

6#define n 200010

7using

namespace

std;

8int n,m,ans,f[n],g[26];9

char

s[n],c;

10bool v[26][26

];11 inline int

read()

17int

main()

26for(rg int i=1;i<=n;i++)

30 g[s[i]-'

a']=max(g[s[i]-'a'

],f[i]);

31 ans=max(ans,f[i]);32}

33 printf("

%d\n

",n-ans);

34return0;

35 }

洛谷2187 小Z的筆記(DP)

由於沒有好好聽課,小z的筆記全都記的雜亂無章,出現了好多錯誤的地方。小z的筆記是如此的糟糕,以至於他只記了一句例句,而且自己還不知道是什麼意思 然後在老師講語法的時候,小z又零星的記了幾個字母對,老師說,這幾個字母對是絕對不能相鄰的,而且相鄰是不關心字母的順序的,比如老師說,ab 不能相鄰,那麼相同...

小Z的 AK 計畫 洛谷p2147

題目描述 在小z的家鄉,有機房一條街,街上有很多機房。每個機房裡都有一萬個人在切題。小z剛刷完codechef,準備出來逛逛。機房一條街有 n 個機房,第 i 個機房的座標為 xi 小z的家座標為 0。小z在街上移動的速度為1,即從 x1 到 x2 所耗費的時間為 x1 x2 每個機房的學生數量不同...

洛谷P2107 小Z的AK計畫

題目大意 有 n 個物品,第 i 個物品在 p i 大小為 w i 你在 0 要求移動距離加上大小總和小於 m 問你最多可以拿多少物品 題解 貪心,按距離排序,每次遇到乙個物品就把大小加入乙個大根堆,若堆中元素大小和加上距離大於 m 就把最大值刪去,直到符合 卡點 無 c code include ...