【算法竞赛入门经典】动态规划初步 例题9-7 UVa11584
2018-03-01 20:59
519 查看
【算法竞赛入门经典】动态规划初步 例题9-7 UVa11584
【算法竞赛入门经典】动态规划初步 例题9-7 UVa11584例题UVa11584
分析
样例实现代码
结果
例题UVa11584
Input
Input begins with the number n of test cases. Each test case consists of a single line of between 1 and 1000 lowercase letters, with no whitespace within.
Output
For each test case, output a line containing the minimum number of groups required to partition the input into groups of palindromes.
Sample Input
3
racecar
fastcar
aaadbccb
Sample Output
1
7
3
分析
利用dp[i]表示第1个字符到第i个字符最少的回文串数量。这样,便利第0个到第i-1个字符,顺序记作j,这样,如果a[j]……a[i]构成回文串的话,那么dp[i]=dp[j]+1
这样遍历j取最小之后
dp
就是答案了
样例实现代码
#include<iostream> #include<algorithm> #include<string> #include<cstring> #define maxn 1000+5 #define INF 100000 using namespace std; int dp[maxn], isp[maxn][maxn]; string a; bool ispf(int i, int j) { if (i >= j) return true; if (a[i] != a[j]) return false; if (isp[i][j] >= 0) return isp[i][j]; isp[i][j] = ispf(i + 1, j - 1); return isp[i][j]; } int main() { int T; cin >> T; getchar(); while (T--) { getline(cin, a); int n = a.size(); a = " " + a; memset(dp, 0, sizeof(dp)); memset(isp, -1, sizeof(isp)); for (int i = 1; i <= n; i++) { dp[i] = dp[i - 1] + 1; for (int j = 0; j<i; j++) { if (ispf(j, i)) { dp[i] = min(dp[i], dp[j-1] + 1); } } } cout << dp << endl; } return 0; }
结果
相关文章推荐
- 【算法竞赛入门经典】动态规划初步 例题9-6 UVa11400
- 【算法竞赛入门经典】回溯法与最优性剪枝条 例题7-6 UVa140
- 【算法竞赛入门经典】集合的动态规划;时间优化 例题9-16 UVa1252
- 【算法竞赛入门经典】6.5[图的BFS] 例题6-20 UVa1599 (2)
- 【算法竞赛入门经典】6.4.2用BFS求最短路 例题6-14 UVa816
- 【算法竞赛入门经典】类LCS动态规划;指标函数分解 例题9-7 UVa1625
- UVa 133 算法竞赛入门经典4-3例题(约瑟夫环类型)
- 算法竞赛入门经典 第二版 例题11-4 电话圈 Calling Circles uva247
- 算法竞赛入门经典第六章例题6-7 Trees on the level UVA - 122
- 【算法竞赛入门经典】7.5 路径寻找问题 例题7-9 UVa1601(1)
- 算法竞赛入门经典第四章例题4-2 Hangman Judge UVA - 489
- 【算法竞赛入门经典】7.7 回溯法求连通块 例题7-14 UVa1602
- 【算法竞赛入门经典】树的最大独立集、树的唯一性问题 例题9-13 UVa1220
- 算法竞赛入门经典第五章例题5-5 The SetStack Computer UVA - 12096
- 【算法竞赛入门经典】DAG上的动态规划 例题9-2 UVa437
- 算法竞赛入门经典第五章例题5-7 Ugly Numbers UVA - 136
- 【算法竞赛入门经典】树形DP的状态转移方程优化 例题9-14 UVa1218
- 【索引】算法竞赛入门经典-第9章 动态规划初步
- 【算法竞赛入门经典】多阶段决策问题 例题9-5 UVa12563
- 【算法竞赛入门经典】递归结构的动态规划 例题9-10 UVa1626