@root 帮帮我 owo

ykj68 2024-04-13 13:16:20 5

#include<bits/stdc++.h> using namespace std; char dp[2000][2000]; string a,b; int main() { cin>>a>>b; for(int x=0;x<=a.size()-1;x++) { for(int y=0;y<=b.size()-1;y++) { if(x==0 or y==0) { dp[x][y]=0; } if(x>0 and y>0) { if(a[x]!=b[y]) dp[x][y]=max(dp[x-1][y],dp[x][y-1]); else dp[x][y]=dp[x-1][y-1]+1; }

	}
}
cout<<dp[a.size()][b.size()]; 
return 0;

}

{{ vote && vote.total.up }}

共 1 条回复

root 站长
#include<bits/stdc++.h>
using namespace std;
int dp[2000][2000];
string a,b;
int main()
{
	cin>>a>>b;
	for(int x=1;x<=a.size();x++)
	{
		for(int y=1;y<=b.size();y++)
		{
			if(a[x - 1] != b[y - 1])
				dp[x][y] = max(dp[x-1][y], dp[x][y-1]);
			else
				dp[x][y] = dp[x-1][y-1] + 1;
		}
	}
	cout<<dp[a.size()][b.size()]; 
	return 0;
}

试试这个代码