P1019 单词接龙

P1019 单词接龙
【P1019 单词接龙】P1019 单词接龙
文章图片

首先需要找到任意两个单词的最小重合长度:从前面单词的尾部比较,依次增加尾部选取长度,直至找到选取尾部和下一个单词头部相同,就找到了最小重合长度。
再通过dfs搜索。

#include using namespace std; int n,sum=0; char str[20][50],ch; //str单词、ch首字母 int a[20][20]={0}; //a[i][j]的值表示i单词接j单词的最小重合长度 int b[20]={0}; //b[i]的值表示i单词使用过的次数 int c[20]={0}; //c[i]的值表示i单词的长度 int max1=0; void dfs(int i){ bool bo=true; for(int j=0; j>n; for(i=0; i>str[i]; c[i]=strlen(str[i]); } cin>>ch; /* *将i单词接j单词的最小重合长度存入a[i][j] */ for(i=0; i-1; k--){ for(l=k; l

    推荐阅读