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

zoj 1953 Advanced Fruits

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

zoj 1953 Advanced Fruits

#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>#include <algorithm>#include <vector>#include <limits.h>#include <queue>#include <stack>using namespace std;int  dp[110][110],cot[110][110],i,j;string a,b,ans,lcs;void push(int i,int j){    if(i == 0||j == 0) return;    if(cot[i][j] == 3)    {        push(i-1,j-1);        lcs += a[i-1];    }    else if(cot[i][j] == 2)    push(i-1,j);    else push(i,j-1);}int main(){    while(cin>>a>>b)    {        int l1 = a.size();        int l2 = b.size();        for(i = 0;i <= l1;i ++) dp[0][i] = 0;        for(i = 0;i <= l2;i ++) dp[i][0] = 0;        for(i = 1;i <= l1;i ++)        { for(j = 1;j <= l2;j ++) {     if(a[i-1] == b[j-1]) {dp[i][j] = dp[i-1][j-1] + 1;cot[i][j] = 3;}     else if(dp[i-1][j] >= dp[i][j-1]) {dp[i][j] = dp[i-1][j];cot[i][j] = 2;}     else {dp[i][j] = dp[i][j-1];cot[i][j]=1;} }        }        ans = "";        lcs = "";        push(l1,l2);        int t;        for( i = j = 0,t = 0; t < lcs.size(); )        { if( a[i] == lcs[t] && b[j] == lcs[t] )     cout<<lcs[t],t++,i++,j++; else if( a[i] == lcs[t] )     cout<<b[j++]; else if( b[j] == lcs[t] )     cout<<a[i++]; else     cout<<a[i++]<<b[j++];        }        while(i < l1)cout<<a[i++];        while(j < l2) cout<<b[j++];        cout<<endl;    }}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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