1. 程式人生 > >哈爾濱理工大學軟體與微電子學院第八屆程式設計競賽同步賽(高年級)補題(補一下dp相關的)簡單的e題匹配字串

哈爾濱理工大學軟體與微電子學院第八屆程式設計競賽同步賽(高年級)補題(補一下dp相關的)簡單的e題匹配字串

可以通過這些內容先了解一下dp
題目連結

//狀態定義就是每個子問題
//狀態轉移就是狀態與狀態之間的轉移式 
#include<cstdio>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int step[1003][1003];//存一下狀態數 
int main()
{
	string str1,str2;
	int coun=0,len;
	cin>>str1>>str2;
	for(int i=1;i<=str1.length();i++)
	{
		for(int j=1;j<=str2.length();j++)
		{
			if(str1[i-1]==str2[j-1])//如果某一步的序列相等了 
			{
				step[i][j]=step[i-1][j-1]+1;//那麼就加1 
			}
			else
			step[i][j]=max(step[i-1][j],step[i][j-1]);//不相等就看看之前哪個大 就是哪個了 
		}
	}
	cout<<step[str1.length()][str2.length()];//最終要求的是這一步的狀態解 
	return 0;
}