uva 10192(最长公共子序列)
2014-10-20 16:28
267 查看
题意:求两个字符串的最长公共子序列。
题解:最长公共子序列模板题。。
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
const int N = 1005;
using namespace std;
int main() {
string str1, str2;
int f
, t = 1;
while (getline(cin, str1) && str1[0] != '#') {
getline(cin, str2);
int len1 = str1.size();
int len2 = str2.size();
memset(f, 0, sizeof(f));
for (int i = len1; i > 0; i--)
str1[i] = str1[i - 1];
for (int j = len2; j > 0; j--)
str2[j] = str2[j - 1];
for (int i = 1; i <= len1; i++)
for (int j = 1; j <= len2; j++) {
if (str1[i] == str2[j])
f[i][j] = f[i - 1][j - 1] + 1;
else
f[i][j] = f[i][j - 1] >= f[i - 1][j] ? f[i][j - 1] : f[i - 1][j];
}
printf("Case #%d: you can visit at most %d cities.\n", t++, f[len1][len2]);
}
return 0;
}
题解:最长公共子序列模板题。。
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
const int N = 1005;
using namespace std;
int main() {
string str1, str2;
int f
, t = 1;
while (getline(cin, str1) && str1[0] != '#') {
getline(cin, str2);
int len1 = str1.size();
int len2 = str2.size();
memset(f, 0, sizeof(f));
for (int i = len1; i > 0; i--)
str1[i] = str1[i - 1];
for (int j = len2; j > 0; j--)
str2[j] = str2[j - 1];
for (int i = 1; i <= len1; i++)
for (int j = 1; j <= len2; j++) {
if (str1[i] == str2[j])
f[i][j] = f[i - 1][j - 1] + 1;
else
f[i][j] = f[i][j - 1] >= f[i - 1][j] ? f[i][j - 1] : f[i - 1][j];
}
printf("Case #%d: you can visit at most %d cities.\n", t++, f[len1][len2]);
}
return 0;
}
相关文章推荐
- Vacation - UVa 10192 最长公共子序列
- UVa 10192 Vacation (DP 最长公共子序列)
- uva 10192 - Vacation(简单的最长公共子序列)
- uva 10192 Vacation(最长公共子序列)
- uva10192 最长公共子序列
- uva10192 - Vacation (dp 最长公共子序列)
- UVA 10192 - Vacation(最长公共子序列)
- UVA 10192 Vacation 最长公共子序列(DP)
- UVa 10192 Vacation (最长公共子序列)
- UVa 10192 - Vacation 字符串dp
- UVa 10192—Vacation
- uva 10192 lcs
- SDUT 2080 最长公共子序列问题 (同uva10100 && POJ 1458 && HDU 1159)
- UVA 10635--Prince and Princess+nlgn求最长公共子序列
- uva 10066 - The Twin Towers(动态规划-最长公共子序列)
- UVA 10192 Vacation
- History Grading - UVa 111 最长公共子序列 注意序列输入
- UVa 10192 - Vacation 字符串dp
- UVa 111 History Grading (最长公共子序列)
- UVA - 10192 - Vacation (动态规划, LCS)