SCOI2007 壓縮 區間dp

2022-08-18 22:48:23 字數 858 閱讀 8843

這道題我是看題解2過的,但是對**的理解存在問題,所以自個口胡一下。

對於0與1兩種狀態,我們先考慮1:很明顯1要在0的基礎上進行,f[l][r][1]=min(f[l][r][1],min(f[l][k][0],f[l][k][1])+min(f[k+1][r][0],f[k+1][r][1])+1),這裡面的+1就是補m的操作,假如在l到r沒有對稱的話,這裡+1明顯不會作為答案,當+1作為答案時,前面兩個min一定是取了有r的情況,也就是說,我們把m和r的放入操作分開,m是因為r才放入的。這麼理解起來的話,前面0操作對m置之不理也就變得合理起來。

#include#include

#include

#include

#include

using

namespace

std;

#define int long long

#define r register

#define debug printf("zjy\n")inline

intread()

while(isdigit(c))

return a*b;

}int n,f[100][100][2

];char s[100

];bool check(int l,int

r)

return

true;}

signed main()

}for(r int len=2;len<=n;len++)

}printf(

"%lld\n

",min(f[1][n][0],f[1][n][1

]));

return0;

}

SCOI2007 壓縮 題解

給乙個由小寫字母組成的字串,我們可以用一種簡單的方法來壓縮其中的重複資訊。壓縮後的字串除了小寫字母外還可以 但不必 包含大寫字母r與m,其中m標記重複串的開始,r重複從上乙個m 如果當前位置左邊沒有m,則從串的開始算起 開始的解壓結果 稱為緩衝串 bcdcdcdcd可以壓縮為bmcdrr,下面是解壓...

SCOI2007 修車 題解

上古網路流題 為了便於考慮每個決策的貢獻,把每個工人的決策拆成n個彼此獨立的決策 即其修的倒數第i個車是什麼。因為此車後 含此車 有i人要多等t,故貢獻為t n 以此拆點建圖,以貢獻為費用跑 二分圖 費用流即可,由費用流性質可知每人修車順序必合法 注意本題n,m順序有點反常 include incl...

SCOI2007 最大流 蜥蜴

非常直觀的建圖方法。對於有蜥蜴的格仔,從源點向該點連一條容量為1的邊,對於每個石柱拆點u,u 連邊u u 容量為石柱高度 對於任意兩個可以到達的石柱u,v,連邊u v,容量為inf 對於任意乙個可以跳出邊界的石柱,連邊u t,容量為inf 做一次最大流即為最多能逃出的蜥蜴數量 include inc...