1 条题解

  • 0
    @ 2025-2-14 21:20:40

    C++ :

    #include<iostream>
    #include<fstream>
    #include<algorithm>
    #include<string>
    #include<cstring>
    using namespace std;
    const int N=101;
    string s1,s2,s3;
    string F[N][N][N];char ff[5][5][5];
    inline bool f(int i,int j,int k){return s1[i-1]==s2[j-1]&&s2[j-1]==s3[k-1];}
    inline const string& maxs(const string &a,const string &b){return (a.size()>b.size())?a:b;}
    int main(){
        ios::sync_with_stdio(0);
        cin>>s1>>s2>>s3;
        int n1,n2,n3;
        n1=s1.size();n2=s2.size();n3=s3.size();
        for(int i=1;i<=4;i++)
            for(int j=1;j<=4;j++)
                for(int k=1;k<=4;k++){
                    if(f(i,j,k))F[i][j][k]=F[i-1][j-1][k-1]+s1[i-1];
                    else F[i][j][k]=maxs(maxs(F[i][j][k-1],F[i][j-1][k]),F[i-1][j][k]);
                }
        for(int i=1;i<=n1;i++)
            for(int j=1;j<=n2;j++)
                for(int k=1;k<=n3;k++){
                    if(F[i][j][k]=="")continue;
                    memset(ff,0,sizeof(ff));
                    for(int ai=1;ai<=4&&i+ai<=n1;ai++)
                        for(int aj=1;aj<=4&&j+aj<=n2;aj++)
                            for(int ak=1;ak<=4&&k+ak<=n3;ak++){
                                if(f(ai+i,aj+j,ak+k))ff[ai][aj][ak]=s1[ai+i-1];
                                else if(ff[ai-1][aj][ak])ff[ai][aj][ak]=ff[ai-1][aj][ak];
                                else if(ff[ai][aj-1][ak])ff[ai][aj][ak]=ff[ai][aj-1][ak];
                                else if(ff[ai][aj][ak-1])ff[ai][aj][ak]=ff[ai][aj][ak-1];
                            }
                    for(int ai=1;ai<=4&&i+ai<=n1;ai++)
                        for(int aj=1;aj<=4&&j+aj<=n2;aj++)
                            for(int ak=1;ak<=4&&k+ak<=n3;ak++)
                                if(ff[ai][aj][ak])
                                    F[i+ai][j+aj][k+ak]=F[i][j][k]+ff[ai][aj][ak];
                }
        cout<<F[n1][n2][n3]<<endl;
        return 0;
    }
    
    
    • 1

    信息

    ID
    767
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者