LA 4394
2014-07-17 13:16
155 查看
Description
View Code
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <queue> using namespace std; #define read() freopen("sw.in", "r", stdin) const int MAX = 105; char a[MAX], b[MAX]; int dp[MAX][MAX]; int f[MAX]; void solve() { int n = strlen(a); for (int len = 1; len <= n; ++len) { for (int l = 0; l + len - 1 < n; ++l) { int r = l + len - 1; dp[l][r] = len; if (l == r) { dp[l][r] = 1; continue; } for (int k = l; k <= r; ++k) { if (k + 1 > r) continue; dp[l][r] = min(dp[l][r], dp[l][k] + dp[k + 1][r]); } if (b[l] == b[r]) dp[l][r] = min(dp[l][r - 1], dp[l][r]); //printf("l = %d r = %d %d\n", l, r, dp[l][r]); } } for (int i = 0; i < n; ++i) { f[i + 1] = dp[0][i]; if (a[i] == b[i]) f[i + 1] = min(f[i + 1], f[i]); for (int j = 0; j < i; ++j) { if (j + 1 > i) continue; f[i + 1] = min(f[i + 1], f[j + 1] + dp[j + 1][i]); } } //for (int i = 0; i < n; ++i) printf("%d ", f[i]); printf("%d\n", f ); } int main() { int t; //read(); while (scanf("%s%s", a, b) != EOF) { solve(); } //cout << "Hello world!" << endl; return 0; }
View Code
相关文章推荐
- 动态规划专项advanced:LA 4394
- LA 4394 String painter 区间DP -
- LA 4394 String painter
- la 4394 string painter 区间dp
- LA 4394 String painter
- LA 4394 刷字符串
- linux中的.so .a .la文件的含义
- 把元素递增的线性表La和Lb合并为Lc,且Lc的中的元素递减排列,使用原空间
- Zoomla!逐浪CMS网站内核管理系统用户手册推出,完全开放,自由免费,欢迎下载。
- Alizee艾莉婕_La isla bonita
- Demon de Laplace
- BLAS+BLACS+LAPACK+ATLAS+SCAPACK+FFTW+HPL 英文介绍
- 现实世界的SQL Azure:采访Zitec公司CEO,Alexandru Lapusan
- linux下的so、o、lo、a、la文件有什么区别?
- Modulo FP TecnicoProyectos Urbanisticos y Topografia: Con la ayuda de este curso convertiras tus proyectos en todo un exito en el mundo de la topografia.
- LA认证程序
- 2.16-从la中删除从i开始len个元素后,把删除的元素放到lb中的j位之前
- Laplace Transform
- HDU 4394 Digital Square【搜索】
- LA 3602 DNA Consensus String