POJ1458 动态规划 (LCS,水)

来源:互联网 发布:西汉皇帝庙号 知乎 编辑:程序博客网 时间:2024/05/04 03:53

嗯确实是LCS最最基础的入门题了。

简直是全裸。


题目概述:

LCS,没啥可说,题目说的十分给面子了。

算法思想:

算法就是 dp[i+1][j+1] = s1[i] == s2[j] ? dp[i][j]+1 : max(dp[i][j+1],dp[i+1][j]);

代码部分:

#include <iostream>#include <string>#include <algorithm>using namespace std;string s1, s2;int dp[201][201];int main() {while (cin >> s1 >> s2) {int s1_len = s1.size();int s2_len = s2.size();for (int i = 0; i < s1_len; i++) {for (int j = 0; j < s2_len; j++) {if (s1[i] == s2[j]) {dp[i + 1][j + 1] = dp[i][j] + 1;}else {dp[i + 1][j + 1] = max(dp[i + 1][j], dp[i][j + 1]);}}}cout << dp[s1_len][s2_len] << endl;}return 0;}


0 0
原创粉丝点击