您的位置:首页 > 其它

UVa:10192 Vacation

2013-09-02 10:32 309 查看
是一道纯粹的LCS。



居然理解错题意了,以为重复出现的城市不统计于是加入了判重结果WA了4次。。





#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
string str1,str2;
int dp[105][105];
int main()
{
    int kase=0;
    while(getline(cin,str1)&&str1[0]!='#')
    {
        memset(dp,0,sizeof(dp));
        getline(cin,str2);
        str1=' '+str1;
        str2=' '+str2;
        for(int i=1; i<str1.size(); ++i)

            for(int j=1; j<str2.size(); ++j)
                if(str1[i]==str2[j])
                    dp[i][j]=dp[i-1][j-1]+1;
                else
                    dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
        cout<<"Case #"<<++kase<<": you can visit at most "<<dp[str1.size()-1][str2.size()-1]<<" cities."<<endl;
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: