C/C++アルゴリズムの分析と設計:動的計画(最長共通サブシーケンス)

1377 ワード

タイトルの説明
最も長い共通のサブシーケンスを得るためにプログラムを書く必要があります.最長共通サブシーケンスは、最長共通サブシーケンス(連続を必要としない)とも呼ばれ、英語ではLCS(Longest Common Subsequence)と略される.この定義は、1つのシーケンスSが、それぞれ2つ以上の既知シーケンスのサブシーケンスであり、この条件シーケンス列の中で最も長いものであれば、Sを既知シーケンスの最長共通サブシーケンスと呼ぶ.
入力
1行目には、整数N(0の次に、測定対象の2つの文字列のデータのセットごとに2行ずつ)が与えられる.各文字列の長さは1000以下である.
しゅつりょく
各テストデータのセットは、最長の共通サブシーケンス長を表す整数を出力します.各グループの結果が1行を占めます.
サンプル入力
2
asdf
adfsd
123abc
abc123abc

サンプル出力
3
6
#include
#include
#include
#include
#include
using namespace std;
int dp[1000];
int judge(int Start, int End, char*s,char c,int*Position){
	for (int i = Start; i <= End; i++){
		if (c == s[i]){
			*Position = i;
			return 1;
		}
	}
	return 0;
}
int main(){
	int k,T,a[100];
	char s1[100],s2[100];
	while(scanf("%d",&T)!=EOF){
		while (T--)
		{
			scanf("%s%s", s1, s2);
			memset(dp, 0, sizeof(dp));
			int c = 0;
			int len1= strlen(s1);
			int len2 = strlen(s2);
			while (cMax){
						Max = num;
					}
				}
				dp[i] = Max;
				a[i] = Position;
			}
			printf("%d
", dp[len1 - 1]); } } return 0; }