LCS dp Batman lightoj 1159

原创 2015年11月17日 16:41:05

/********************************************
Author         :Crystal
Created Time   :
File Name      :
********************************************/
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <climits>
#include <string>
#include <vector>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <sstream>
#include <cctype>
using namespace std;
typedef long long ll;
typedef pair<int ,int> pii;
#define MEM(a,b) memset(a,b,sizeof a)
#define CLR(a) memset(a,0,sizeof a);
const int inf = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
//#define LOCAL
int dp[55][55][55];
int main()
{
#ifdef LOCAL
	freopen("in.txt", "r", stdin);
//	freopen("out.txt","w",stdout);
#endif
	int t;cin >> t;
	int kase = 1;
	while(t--){
		CLR(dp);
		char ch1[55],ch2[55],ch3[55];
		scanf("%s%s%s",ch1+1,ch2+1,ch3+1);
		int a = strlen(ch1+1), b = strlen(ch2+1), c = strlen(ch3+1);
		int nmax = 0;
		for(int i=1;i<=a;i++){
			for(int j=1;j<=b;j++){
				for(int k=1;k<=c;k++){
					if(ch1[i] == ch2[j] && ch2[j] == ch3[k]){
						dp[i][j][k] = dp[i-1][j-1][k-1]+1;
					}
					else{
						dp[i][j][k] = max(dp[i-1][j][k],max(dp[i][j-1][k],dp[i][j][k-1]));
					}
				}
			}
		}
		printf("Case %d: %d\n",kase++,dp[a][b][c]);
	}
	return 0;
}








就是一lcs变形

dp[i][j][k]表示第一个字符串前i个,第二个字符串前j个,第三个字符串前k个


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

hdoj 1159 Common Subsequence【LCS】【DP】

Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe...

POJ 1159 Palindrome(DP LCS&滚动数组)

Description A palindrome is a symmetrical string, that is, a string read identically from left to ri...

【HDU1159】Common Subsequence(LCS/DP)

Common SubsequenceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others...

Poj1159 Palindrome(动态规划DP求最大公共子序列LCS)

一、Description A palindrome is a symmetrical string, that is, a string read identically from left to ...

poj1159 Palindrome DP,lcs

Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 44186   Ac...

LightOJ 1013 Love Calculator 【DP(LCS变形)】

题目链接题意给两个字符串,求长度最短的字符串的长度以及个数,使得给出的两个串都是这个串的子串。分析LCS的变形,首先长度自然是len(s1)+len(s2)-len(LCS)。关键是有多少个这样的字符...

【LightOJ 1013】Love Calculator(LCS+DP)

Problem DescriptionYes, you are developing a ‘Love calculator’. The software would be quite complex ...

LightOJ 1013 - Love Calculator (LCS + dp)

题意: |L|<=30的两个字符串,求一个新的最短的字符串包含它俩作为子序列,输出长度和此长度下的方法数|L|<=30的两个字符串, 求一个新的最短的字符串包含它俩作为子序列, 输出长度和此长度下...
  • lwt36
  • lwt36
  • 2015-11-13 02:22
  • 168

lightoj 1033【区间DP/LCS】

题意: 给你一个长度j的最少数量。 然后扩大,就好了吧。 如果区间的两端是相同:dp[i,j]=dp[i+1,j-1]的大小。 然后倒着枚举起点,然后区间大小慢慢扩

poj1159Palindrome(LCS最长公共子序列变形)

Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 60920   Ac...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)