hdu6212 祖瑪(區間DP)
題意
有一個長度為n的01串,我們可以在某個地方插入一個0或者1,那麽如果有連續顏色相同的>=3個,那麽這段就會消去,兩邊的合攏。問將所有01串消去,最少需要插入多少個。(n<=200)
分析
肯定會考慮區間DP
將連續的0或者1縮起來,a[i]表示i位置的個數(要麽1個要麽2個)
容易分析轉移的話有以下兩種
1、直接將區間[i,j]分成兩半,各自合並,即dp[i][j]=min(dp[i][k]+dp[k+1][j])
2、將中間的一部分合並掉,兩邊直接對碰消去,即dp[i][j]=min(dp[i+1][j-1]+(a[i]+a[j]<3)
還有一種難想的轉移,就是在中間找個k,i j k同色,通過刪除[i+1,k-1] [k+1,j-1] 讓i j k 三消,這裏註意要判斷a[i]+a[j]+a[k]<=4,否則不會三消,會先雙消
hdu6212 祖瑪(區間DP)
相關推薦
hdu6212 祖瑪(區間DP)
tro 位置 表示 中間 ron i+1 strong 就會 題意 題意 有一個長度為n的01串,我們可以在某個地方插入一個0或者1,那麽如果有連續顏色相同的>=3個,那麽這段就會消去,兩邊的合攏。問將所有01串消去,最少需要插入多少個。(n<=200)
LightOJ - 1422 Halloween Costumes (區間DP)
wan things strong cas book article printf ase con Description Gappu has a very busy weekend ahead of him. Because, next weekend is Ha
POJ 1141 Brackets Sequence (區間DP)
ive bsp rip mes character har typedef som memset Description Let us define a regular brackets sequence in the following way: 1.
Brackets Sequence POJ - 1141 (區間dp)
gif == urn ++ char img ems utc pre Brackets Sequence POJ - 1141 題意:給一個括號序列,問最少添加多少個括號似的原序列匹配,並輸出新序列。 用dp[i][j]表示i到j最少添加幾個括號,flag[i][j]表
Brackets POJ - 2955 (區間dp)
pla clu for eof %d img rac end racket Brackets POJ - 2955 題意:給一個括號序列,問最多有多少個括號是可以配對的。 1 #include<cstdio> 2 #include<algori
Food Delivery ZOJ - 3469 (區間dp)
位置 turn pro pan return isp ive != truct Food Delivery ZOJ - 3469 題意:快遞員送外賣,n個客戶,起始位置為x,速度為v,每個客戶單位時間不滿意度增加hi,問最少增加多少不滿意度。 每一個客戶可能是從左側送到
CSUOJ-1980 不堪重負的數(區間dp)
inline 滿二叉樹 -a ems ext div des button problems 1980: 不堪重負的樹 Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Subm
POJ 1991 Turning in Homework(區間DP)
clu sin highlight sort stream ret spa 作業 ref 題目鏈接 Turning in Homework 考慮區間DP f[i][j][0]為只考慮區間[i, j]且最後在a[i]位置交作業的答案。 f[i][j][1]為只考慮區間[
括號匹配問題(區間dp)
最小值 很好 nbsp 需要 簡單的 棧模擬 pri tex 什麽 簡單的檢查括號是否配對正確使用的是棧模擬,這個不必再說,現在將這個問題改變一下:如果給出一個括號序列,問需要把他補全成合法最少需要多少步? 這是一個區間dp問題,我們可以利用區間dp來解決,直接看代碼吧!
修長城 (區間DP)
urn ret 世紀 log width hide 時間 main gif Time Limit: 1000 ms Memory Limit: 256 MB Description 大家都知道,長城在自然條件下會被侵蝕,因此,我們需要修復。現在是21世紀,
Codeforces 392E Deleting Substrin(區間dp)
read temp put tdi char i+1 void log ++ 題目大意: ? 給定vi,wi,每次可以在wi中選擇一個子段[l,r]滿足:? |wi-wi+1|=1 (l<=i<r)? 2wi-wi-1-wi+1>=0 (l<i<
【Uva10559】Blocks(區間DP)
log turn logs efi read etc body pre 數量 Description 題意:有一排數量為N的方塊,每次可以把連續的相同顏色的區間消除,得到分數為區間長度的平方,然後左右兩邊連在一起,問最大分數為多少。 \(1\leq N\leq200\) S
You Are the One HDU - 4283(區間dp)
eas value script names elf for stdio.h 表示 text You Are the One Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav
Topcoder SRM 301 Div2-1000 CorrectingParenthesization(區間DP)
完全 errors 實現 括號 cor ren opc fin 區間dp 題意 給定一個長度為偶數的字符串。這個字符串由三種括號組成。 現在要把這個字符串修改為一個符合括號完全匹配的字符串,改變一個括號的代價為$1$,求最小總代價。 區間DP。令$dp[i
【BZOJ】1260 [CQOI2007]塗色paint(區間dp)
c++ ide hid event pri display pro == spl 題目 傳送門:QWQ 分析 區間dp, 詳見代碼 代碼 /*****************************************
【lightoj-1025】The Specials Menu(區間DP)
.com lightoj 不同 cin mes std 需要 就是 ++ 題目鏈接:http://www.lightoj.com/volume_showproblem.php?problem=1025 【題目大意】 求一個字符串刪去任意字符可以構成多少個不同的回文
POJ 1651 Multiplication Puzzle (區間DP)
contain 個數 ++ %d str poi point return IE Description The multiplication puzzle is
51Nod - 1021 石子歸並(區間DP)
put -c ring 輸出 define .org max print left 【題目描述】 N堆石子擺成一條線。現要將石子有次序地合並成一堆。規定每次只能選相鄰的2堆石子合並成新的一堆,並將新的一堆石子數記為該次合並的代價。計算將N堆石子合並成一堆的最小代價。
Cheapest Palindrome(區間DP)
cte oci register mat 添加 put 回文字符 medium ads 描述 Keeping track of all the cows can be a tricky task so Farmer John has installed a system
POJ 3186 Treats for the Cows(區間dp)
++ pac follow 註意 reat receive man ring tle 傳送門: http://poj.org/problem?id=3186 Treats for the Cows Time Limit: 1000MS Memory Limit: