zoukankan      html  css  js  c++  java
  • 胖男孩

    胖男孩

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 23  解决: 19
    [提交][状态][讨论版]

    题目描述

    麦克正如我们所知的已快乐地结婚,在上个月他胖了70磅。因为手指上的脂肪过多,使他连给他最亲密的朋友斯拉夫克写一个电子邮件都很困难。 
    每晚麦克都详细地描述那一天他所吃的所有东西,但有时当他只想按一次某键时往往会按了不止一次,并且他的胖手指还会碰到他不想要按的键,麦克也知道自己的手指有问题,因此他在打字的时候很小心,以确保每打一个想要的字符时误打的字符不超过3个,误打的字符可能在正确字符之前也可能在其之后。 
    当斯拉夫克多次收到读不懂的电子邮件后,他总是要求麦克将电子邮件发3遍,使他容易读懂一点。 
    编写程序,帮助斯拉夫克根据他所收到的三封电子邮件求出麦克可能写出的最长的信。 

    输入

    输入文件包含了三行文本。每一行文本包括麦克信件的一种版本。其中所有的字符都由英文字母表中的小写字母组成并且不超过100个。 

    输出

    输出文件中第一行即唯一的一行数据应该包含斯拉夫克根据所收到的电子邮件推测出的最长信件。输出其长度

    样例输入

    cecqbhvaiaedpibaluk
    cabegviapcihlaaugck
    adceevfdadaepcialaukd
    

    样例输出

    9
    
    三维时的最大公共子序列
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int f[105][105][105];
    int main()
    {
        char char1[105],char2[105],char3[105];
        scanf("%s %s %s",char1+1,char2+1,char3+1);
        for(int i=1;i<=strlen(char1+1);i++)
            for(int j=1;j<=strlen(char2+1);j++)
                for(int k=1;k<=strlen(char3+1);k++)
                {
                    if(char1[i]==char2[j]&&char2[j]==char3[k])
                    f[i][j][k]=f[i-1][j-1][k-1]+1;else
                    f[i][j][k]=max(f[i-1][j][k],max(f[i][j-1][k],f[i][j][k-1])); 
                }
        printf("%d
    ",f[strlen(char1+1)][strlen(char2+1)][strlen(char3+1)]);        
    }
  • 相关阅读:
    leetcode 268. Missing Number
    DBSCAN
    python二维数组初始化
    leetcode 661. Image Smoother
    leetcode 599. Minimum Index Sum of Two Lists
    Python中的sort() key含义
    leetcode 447. Number of Boomerangs
    leetcode 697. Degree of an Array
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月3日)
    北京Uber优步司机奖励政策(1月2日)
  • 原文地址:https://www.cnblogs.com/dancer16/p/6891037.html
Copyright © 2011-2022 走看看