poj1159-Palindrome(最长公共子序列)
来源:互联网 发布:7u分享网络官网跑路 编辑:程序博客网 时间:2024/06/05 17:45
#include <iostream>#include <cstring>#include <algorithm>using namespace std;struct poj1159 {/*[问题描述]:已知一个序列,求至少添加多少个元素使得该序列成为一个回文序列*//*[解题思路]:需要添加的元素数=原序列长度-原序列与逆序列的最长公共子序列长度,*从而将问题转换为最长公共子序列问题.*由于每次f[i][j]的决策只需要考虑f[i-1][j-1],f[i-1][j],f[i][j-1],*可以采用滚动数组对空间进行优化*/int n;char str[5005];int f[2][5005];void work() {while (cin >> n) {cin >> str + 1;for (int i = 0; i <= n; i++) {for (int j = n + 1; j >= 1; j--) {if (i != 0 && j != n + 1) {if (str[i] == str[j])f[i % 2][j] = f[(i - 1) % 2][j + 1] + 1;elsef[i % 2][j] = max(f[(i - 1) % 2][j], f[i % 2][j + 1]);}elsef[i % 2][j] = 0;}}cout << n - f[n % 2][1] << endl;}}};int main(){poj1159 solution;solution.work();return 0;}
0 0
- poj1159 Palindrome(最长公共子序列)
- HDU1513 && POJ1159 Palindrome 最长公共子序列
- poj1159-Palindrome(最长公共子序列)
- poj1159 Palindrome 最长公共子序列 + 滚动数组
- poj1159 Palindrome(最长公共子序列, dp+滚动数组)
- poj1159 Palindrome 【最长回文子序列】
- Poj1159——最长公共子序列
- poj1159(dp,最长公共子序列)
- poj1159 java 最长公共子序列
- 北大POJ1159 Palindrome(动态规划求最长公共子序列)
- poj1159--Palindrome(dp:最长公共子序列变形 + 滚动数组)
- Palindrome(补全回文串+最长公共子序列的应用)hdu1513+poj1159+动态规划
- Palindrome-最长公共子序列
- 动态规划经典 最长公共子序列 poj1159
- hdu 1513 Palindrome最长公共子序列
- POJ 1156 Palindrome (最长公共子序列)
- poj 1159 Palindrome(最长公共子序列)
- poj 1159 Palindrome 最长公共子序列
- 【java】绘图坐标体系
- 亚马逊如何变成 SOA(面向服务的架构)?
- EL表达式调用函数
- FFmpeg图解:ff_raw_read_partial_packet
- JDBC编程之数据准备
- poj1159-Palindrome(最长公共子序列)
- Servlet基础
- Yolo在NVIDIA TX1上测试
- springboot log日志打印
- 解决eclipse上传文件不自动刷新
- python lambda的用法
- 小学数学
- Python中的闭包总结
- Target runtime tianluo_manage is not defined.