感觉就很神奇,暴力搜索,跟了一下范例,搜索过程没有问题,然后拿了别人一个AC100的代码,我列举了16行复杂化的例子,我和那个大佬得的结果一样,可是我提交的时候全错
#include <stdio.h>
#include <string.h>
#define max(a,b) a>b?a:b
int ans=0;
int temp=0;
void dfs(char arr[20][2050],int index,int flag[20],int N){
int i=0;
for(i=0;i<N;i++){
if(flag[i]==0){
if(arr[i][0]==arr[index][strlen(arr[index])-1]){
int temp2=0;
flag[i] = 1;
temp += strlen(arr[i]);
temp2 = index;
index = i;
ans = max(ans,temp);
dfs(arr,index,flag,N);
index = temp2;
temp -= strlen(arr[i]);
flag[i] = 0;
}
}
}
}
int main(){
printf("自己的\n");
int N=0;
int flag[20]={0};
char arr[20][2050]={};
int i=0;
scanf("%d",&N);
fflush(stdin);
for(i=0;i<N;i++){
gets(arr[i]);
}
for(i=0;i<N;i++){
temp = strlen(arr[i]);
flag[i] = 1;
dfs(arr,i,flag,N);
flag[i] = 0;
}
printf("%d",ans);
return 0;
}