锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
//姝ら鏄眰鏈闀垮叕鍏卞瓙瀛﹀垪錛屼絾鏄拰涓鑸涓嶅悓鐨勬槸錛屽唴瀛樺崱鐨勫緢涓ワ紝鏄?0kb,鎵浠ワ紝瑕佽冭檻鐘舵佺殑鍘嬬緝錛?br> //鍏跺疄姣忔鐘舵佽漿縐葷殑鏃跺欓兘鏄敤鍒頒簡浠呬粎涓や釜鐘舵佽屽凡錛屾晠鑰岀敤涓や釜鏁扮粍灝卞彲浠ヤ繚瀛樻墍鏈夋湁鐢ㄧ殑鐘舵佷簡
//寮濮嬫兂浜嗗ソ澶氱殑鍔炴硶錛屽悗鏉ョ畻浜嗙畻錛岄偅浜涗紭鍖栫畝鐩村彲絎戯紝涓嶅帇緙╂槸涓嶅彲鑳借繃鐨勩?br> //===============================================================
1
#include <iostream>
2
#include <string>
3
#define MAXN 1005
4
using namespace std;
5
6
int dp_1[MAXN];
7
int dp_2[MAXN];
8
string s_1;
9
string s_2;
10
int main()
11

{
12
freopen("acm.acm","r",stdin);
13
int t;
14
int i;
15
int j;
16
cin>>t;
17
while(t --)
18
{
19
cin>>s_1;
20
cin>>s_2;
21
for(i = 0; i <= s_1.length(); ++ i)
22
{
23
dp_1[i] = 0;
24
}
25
for(j = 0;j <= s_2.length(); ++ j)
26
{
27
dp_2[j] = 0;
28
}
29
for(i = 0; i < s_1.length(); ++ i)
30
{
31
for(j = 0; j < s_2.length(); ++ j)
32
{
33
if(s_1[i] == s_2[j])
34
{
35
dp_1[j+1] = dp_2[j] + 1;
36
}
37
else
38
{
39
if(dp_2[j+1] > dp_1[j])
40
{
41
dp_1[j+1] = dp_2[j+1];
42
}
43
else
44
{
45
dp_1[j+1] = dp_1[j];
46
}
47
}
48
}
49
for(j = 0; j <= s_2.length(); ++ j)
50
{
51
dp_2[j] = dp_1[j];
52
}
53
}
54
//cout<<dp_1[s_1.length()]<<endl;
55
cout<<dp_1[s_2.length()]<<endl;
56
57
}
58
}
59
60
61
62
]]>