求助!样例过了,但是交上去全WA
查看原帖
求助!样例过了,但是交上去全WA
635570
baka24楼主2023/4/26 17:09
#include<bits/stdc++.h>
using namespace std;
int n,ans;
char bgin;
int vis[30];
string s[30];
void dfs(int x,int num){
    ans=max(ans,num);
    for(int i=1;i<=n;i++){
        if(vis[i]==2)continue;
        int lo=s[x].length();
        for(int j=1;j<lo;j++){
            if(s[i][0]==s[x][j]){
                //cout<<i<<" "<<j<<endl;
                bool tmp=1;int cnt=1;int li=s[i].length();
                for(int k=j+1;k<lo;k++){
                        cnt++;
                    if(s[i][k-j]!=s[x][k]){
                //cout<<i<<" "<<k<<" "<<j<<" "<<x<<" "<<k<<" "<<s[i][k-j]<<" "<<s[x][k]<<endl;
                        tmp=0;
                        break;
                    }
                }
                if(tmp){
                    vis[i]++;
                    //cout<<i<<" "<<num<<" "<<s[i].length()<<" "<<cnt<<endl;
                    dfs(i,num+s[i].length()-cnt);
                    vis[i]--;
                }
            }
        }
    }
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        cin>>s[i];
    }
    bgin=getchar();
    bgin=getchar();
    for(int i=1;i<=n;i++){
        if(s[i][0]==bgin){
            vis[i]++;
            dfs(i,s[i].length());
            vis[i]--;
        }
    }
    printf("%d",ans);
    return 0;
}

求求大佬帮忙看看

2023/4/26 17:09
加载中...