您的位置:首页 > 其它

动态规划练习 11

2012-08-12 12:26 169 查看
题目:AGTC (POJ 3356)

链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=3356

[code]#include <iostream>


#include <string>


#include <algorithm>


 


using namespace std;


 


int matrix[1001][1001];


 


int main(int argc, char **argv)


{


int m;


string a, b;


 


// Got a WA without while loop.


while (cin >> m >> a >> m >> b)


{


for (size_t i = 1; i <= a.size(); ++i)


    {


matrix[i][0] = i;


}


 


for (size_t j = 1; j <= b.size(); ++j)


    {


matrix[0][j] = j;


}


 


for (size_t i = 1; i <= a.size(); ++i)


    {


    for (size_t j = 1; j <= b.size(); ++j)


{


if (a[i - 1] != b[j - 1])


    {


int dist = min(matrix[i - 1][j], matrix[i][j - 1]);


matrix[i][j] = min(dist, matrix[i - 1][j - 1]) + 1;


}


else


    {


int dist = min(matrix[i - 1][j], matrix[i][j - 1]) + 1;


matrix[i][j] = min(dist, matrix[i - 1][j - 1]);


}


}


}


 


cout << matrix[a.size()][b.size()] << endl;


}


 


return 0;


}

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: