P1019 单词接龙

P1019 单词接龙

P1019 单词接龙_第1张图片
首先需要找到任意两个单词的最小重合长度:从前面单词的尾部比较,依次增加尾部选取长度,直至找到选取尾部和下一个单词头部相同,就找到了最小重合长度。
再通过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

你可能感兴趣的:(搜索)