栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1792 Gap Punishment Aligm...

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1792 Gap Punishment Aligm...

#include<iostream>#include<string.h>#define SIZE  502using namespace std;int dp[3][SIZE][SIZE];int Max(int x, int y, int z){int tmp = (x > y ? x : y);return tmp > z ? tmp : z;}void initialise(int len1, int len2){for(int i = 0; i != 3; ++i)for(int j = 0; j != len1 + 1; ++j)for(int k = 0; k != len2 + 1; ++k)dp[i][j][k] = -0xfffffff;dp[0][0][0] = dp[1][0][0] = dp[2][0][0] = 0;for(int i = 1; i != len2 + 1; ++i)dp[1][0][i] = -(4 + i);for(int i = 1; i != len1 + 1; ++i)dp[2][i][0] = -(4 + i);}int main(){string str1, str2;int len1, len2, n;cin >> n;while(n--){cin >> str1 >> str2;len1 = str1.size();len2 = str2.size();initialise(len1, len2);for(int i = 1; i != len1 + 1; ++i)for(int j = 1; j != len2 + 1; ++j){int v = ((str1[i - 1] == str2[j - 1]) ? (2) : (-1));dp[0][i][j] = Max(dp[0][i - 1][j - 1] + v, dp[1][i - 1][j - 1] + v, dp[2][i - 1][j - 1] + v);dp[1][i][j] = Max(dp[0][i][j - 1] - 5, dp[1][i][j - 1] - 1, dp[2][i][j - 1] - 5);dp[2][i][j] = Max(dp[0][i - 1][j] - 5, dp[1][i - 1][j] - 5, dp[2][i - 1][j] - 1);}cout << Max(dp[0][len1][len2], dp[1][len1][len2], dp[2][len1][len2]) << endl;}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377691.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号