DFSの訓練 - 変容 - 解決のレポート

変貌

件名の説明:

スペル場合:彼はハーマイオニーがすべての呪文を覚えることができるようにしませんでしたし、カジュアルな野球がハリネズミか何かになるだろうが、彼は変形マントラの統一の法則を発見したので、ええと...変形クラスハリーは、少し問題に走りました単語のb終わりから始まるが、その役割は正確にBオブジェクトになりオブジェクトです。
ハリーは彼がテーブルの列となっていたすべての呪文を持って、彼は助けを計算するにはあなたを望んでいる彼ができたかどうかM(マウス)への完全な教師の仕事、B(ボールが)、あなたは彼がそれを完了することができないならば、彼はハーマイオニーを依頼しなければならなかった、と真実を学ぶために多くのことを聞くことを余儀なく、知っています。

入力:

テストデータの複数のセット。各グループ内の複数の行を1行に1つずつワードは、小文字のみを含む、すべての呪文ハリー意志数字0は、入力のセットの終わりを示します。

出力:

ハリーは彼の宿題を終えることができました場合は、出力が「はい。」、それ以外の場合は出力「いいえ」(Doが完全に停止を無視しません)

SAMPE入力:

ここに画像を挿入説明

サンプル出力:

ここに画像を挿入説明

アイデアの分析:

この質問は同じ単語ソリティアと同じですが、私たちはまず、文字Bの先頭を識別それらを記録した後、手紙の最後には条件を満たすために手紙メートルで依頼する必要がありますので、申請の対象は、文字bで始まるからです。この質問を入力するには不快な、書き込みにそう利用ベクター構造、何も言わなかったが、私は書くことができない、唯一のアレイを拡張することができます。我々は条件を満たすことができるかどうかは、実際に私たちは大丈夫でした。この質問は、入力条件を設定言いませんでした、それは連続的な出力であることが必要であり、多くの問題があり、╮(╯▽╰)╭。

ACコード:

使用時:46msを


#include<cstdio>
#include<string.h>
char c1[10000][20];//记录单词 
int d[10000];//记录b开头单词所出现的序号 
int e[10000];//标记是否用过该单词 
int g=0;//记录有多少个单词 
int flag,flag1;//flag标记是否能够接龙成功,这个flag1也和flag差不多 
void LemonDFS(char c2)
{
	int i;
	if(flag)//这里是为了缩短运行时间,一旦达到要求了,后面就不用在继续DFS 
	{
		return;
	}
	for(i=0;i<g;i++)//分三种情况去看 
	{
		if(c1[i][strlen(c1[i])-1]=='m'&& c2=='m')//如果第一个找到m开头,就退出 
		{
			flag=1;
			return;
		}
		if(c2==c1[i][0] && c1[i][strlen(c1[i])-1]=='m' && e[i]!=1)//如果找到 m开头就退出 
		{
			flag=1;
			return;
		}
		if(c2==c1[i][0] && e[i]!=1)//如果接龙可以,并且没使用过该单词,就DFS下去 
		{
			e[i]=1;//标记用过该数字 
			LemonDFS(c1[i][strlen(c1[i])-1]);
			if(flag)//剪枝,缩短时间 
			return;
			e[i]=0;
		}
	}
}
int main()
{
	int b=0,c=0;
	while(scanf("%s",c1[g])!=EOF)//为了持续输入,这里就吐了 
	{ 
		flag=0;
		flag1=0;
		if(c1[g][0]=='0')
		{
			for(b=0;b<c;b++)//记录单词 
	{
		e[d[b]]=1;//记录 
		LemonDFS(c1[d[b]][strlen(c1[d[b]])-1]);//传b字母进去 
		if(flag)
		{
			printf("Yes.\n");
			flag1=1;
			break;
		}
		e[d[b]]=0;
	} 
	if(!flag1)
	printf("No.\n");
	memset(c1,0,sizeof(c1));
	memset(e,0,sizeof(g));
	memset(d,0,sizeof(d));
	g=0;
	continue;
		}
		if(c1[g][0]=='b')//记录b开头的单词 
		{
			d[c++]=g;
		}
		g++;
	}
}
公開された49元の記事 ウォンの賞賛6 ビュー10000 +

おすすめ

転載: blog.csdn.net/xiaosuC/article/details/104247037