BZOJ 1032: [JSOI2007]祖碼Zuma 區間DP
題目連結:見這裡
解題方法: 區間DP。首先我們把連續相同的珠子都縮在一起 令f[i][j]表示從i開始的j個珠子的最小消除次數 初值 f[i][1]=cnt[i]==1?2:1
然後對於每個區間,我們列舉中間點,拆成兩半求和
如果這個區間兩端點顏色相同,我們還可以把中間消掉,然後兩邊再補射1或0個。
但是這個題目資料是有問題的,按照上面的方法是可以AC,但是有反,具體可以參考下這個部落格:見這裡
程式碼如下:
#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for(int i = a; i <= b; i++)
const int inf = 0x3f3f3f3f;
const int N = 550;
pair <int, int> a[N];
int dp[N][N]; //dp[i][j]從i開始的j個珠子的最小消除次數
int n;
int main(){
scanf("%d", &n);
a[0].first = inf;
int cnt = 0;
rep(i, 1, n){
int x;
scanf("%d", &x);
if(x != a[cnt].first){
a[++cnt].first = x;
}
a[cnt].second++;
}
n = cnt;
memset(dp, 0x3f, sizeof(dp));
rep(i, 1, n) dp[i][1] = a[i].second == 1 ? 2 : 1;
rep(j, 2, n){ //區間長度
for(int i = 1; i + j - 1 <= n; i++){ //起點
if(a[i].first == a[i + j - 1].first){
dp[i][j] = dp[i + 1][j - 2] + (a[i].second + a[i + j - 1].second == 2 ? 1 : 0);
}
for(int k = 1; k < j; k++){
dp[i][j] = min(dp[i][j], dp[i][k] + dp[i + k][j - k]);
}
}
}
printf("%d\n", dp[1][n]);
return 0;
}
相關文章
- 區間dp
- 【DP】區間DP入門
- BZOJ 1030: [JSOI2007]文字生成器 DP,AC自動機JS
- bzoj1030: [JSOI2007]文字生成器(AC自動機+Dp)JS
- bzoj 3864: Hero meet devil [dp套dp]dev
- 【區間dp】石子合併
- POJ2955 Brackets (區間DP)Racket
- [動態規劃] 區間 dp動態規劃
- 區間dp 合併石子問題
- 【BZOJ 5003】與鏈 (多重揹包 dp)
- POJ 2955-Brackets(括號匹配-區間DP)Racket
- ACM日常訓練日記——8.1(區間dp)ACM
- AtCoder Regular Contest 104——C區間dp
- 區間問題(非DP型別)及變形型別
- BZOJ 1031: [JSOI2007]字元加密Cipher 字尾陣列JS字元加密陣列
- BZOJ 1029: [JSOI2007]建築搶修 堆,貪心,排序JS排序
- BZOJ 3329 Xorequ:數位dp + 矩陣快速冪矩陣
- bzoj 3812: 主旋律 [容斥原理 狀壓DP]
- Codeforces Round #336 (Div. 2) D 區間dp
- Codeforces 245H Queries for Number of Palindromes:區間dp
- 一類適合記憶化搜尋的區間dp
- bzoj3675: [Apio2014]序列分割(Dp)API
- NOIP集訓Day24 DP常見模型3 - 區間模型
- 【Shell】fix 1032報錯資訊的指令碼指令碼
- bzoj3156: 防禦準備(斜率優化+Dp)優化
- POJ1141 ZOJ1463 Brackets Sequence【區間dp】Racket
- NOIP2003加分二叉樹[樹 區間DP]二叉樹
- 石子合併問題 (樸素區間DP&&GarsiaWachs演算法)演算法
- 祖傳程式碼如何優化效能?優化
- 如何優化 Vue 祖傳程式碼優化Vue
- BZOJ1029: [JSOI2007]建築搶修[模擬 貪心 優先佇列]JS佇列
- bzoj1084: [SCOI2005]最大子矩陣(Dp)矩陣
- bzoj4465: [Jsoi2013]遊戲中的學問(Dp)JS遊戲
- 二叉搜尋樹 [四邊形不等式優化區間dp]優化
- poj1179 區間dp(記憶化搜尋寫法)有巨坑!
- BZOJ3329: Xorequ(二進位制數位dp 矩陣快速冪)矩陣
- BZOJ 3357 [Usaco2004]等差數列:map優化dp優化
- px,in,mm,pt,dp,dip,sp 之間的換算公式以及區別 螢幕密度公式