poj_2250 Compromise(输出最长公共子序列)

【题目】

点击这里

【思路】

最长公共子序列的元素变成了单词,算法依然相同。最后输出子序列时,只需根据ans数组从后往前索引,遇到序列元素时就将其入栈,最后出栈输出。

【代码】

#include <stdio.h>
#include <string.h>
#define size 150
#define max(x,y) x>y? x:y

int main()
{
    char s[31], a[size][31], b[size][31];
    int x,y,i,j,total,str[size],ans[size][size];
    for (i=0;i<size;i++) {ans[i][0]=0; ans[0][i]=0;}

    while (scanf("%s",s)!=EOF)
    {
        x=-1; y=-1;
        while (strcmp(s,"#")!=0) {strcpy(a[++x],s); scanf("%s",s);}
        scanf("%s",s);
        while (strcmp(s,"#")!=0) {strcpy(b[++y],s); scanf("%s",s);}

        for (i=1;i<=x+1;i++)
            for (j=1;j<=y+1;j++)
            if (strcmp(a[i-1],b[j-1])==0) ans[i][j]=ans[i-1][j-1]+1;
            else ans[i][j]=max(ans[i-1][j],ans[i][j-1]);

        total=ans[x+1][y+1];
        while (i>0 && j>0)
            if (strcmp(a[i-1],b[j-1])==0) {str[total--]=i-1; i--; j--;}
            else if (ans[i-1][j]>ans[i][j-1]) i--; else j--;
        for (i=1;i<ans[x+1][y+1];i++) printf("%s ",a[str[i]]);
        printf("%s\n",a[str[ans[x+1][y+1]]]);
    }
    return 0;
}

已标记关键词 清除标记
相关推荐
<p> <strong><span style="font-size:20px;color:#FF0000;">本课程主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者</span></strong> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">1. 包含:<span style="color:#FFFF00;background-color:#FF0000;">项目源码、</span><span style="color:#FFFF00;background-color:#FF0000;">项目文档、数据库脚本、软件工具</span>等所有资料</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">2. 手把手的带你从零开始部署运行本套系统</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">3. 该项目附带的源码资料可作为毕设使用</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">4. 提供技术答疑和远程协助指导</span></strong></span><strong><span style="font-size:18px;"></span></strong> </p> <p> <br /> </p> <p> <span style="font-size:18px;"><strong>项目运行截图:</strong></span> </p> <p> <strong><span style="font-size:18px;">1)系统登陆界面</span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241015433522.png" alt="" /><br /> </span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">2)学生模块</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241015575966.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">3)教师模块</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016127898.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">4)系统管理员</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016281177.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016369884.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><br /> </span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">更多Java毕设项目请关注我的毕设系列课程 <a href="https://edu.csdn.net/lecturer/2104">https://edu.csdn.net/lecturer/2104</a></span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><br /> </span></strong> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页