普及練習場 深度優先搜尋 P1019 單詞接龍

2021-10-02 23:26:58 字數 1060 閱讀 4696

題目描述

單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的「龍」(每個單詞都最多在「龍」**現兩次),在兩個單詞相連時,其重合部分合為一部分,例如 beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存在包含關係,例如at 和 atide 間不能相連。

輸入輸出格式

輸入格式:

輸入的第一行為乙個單獨的整數n (n<=20)表示單詞數,以下n 行每行有乙個單詞,輸入的最後一行為乙個單個字元,表示「龍」開頭的字母。你可以假定以此字母開頭的「龍」一定存在.

輸出格式:

只需輸出以此字母開頭的最長的「龍」的長度

輸入輸出樣例

輸入樣例#1:5at

touch

cheat

choose

tact

a輸出樣例#1:

說明連成的「龍」為atoucheatactactouchoose

————————————————

思路:先做比較字元然後進行深搜處理

#include

#include

#include

using

namespace std;

int wordtot, maxi =0;

struct wordswords[22]

;int

jude

(char a,

char b)

if(flag)

return i;

}return0;

}void

dfs(

char tail,

int num)}}

intmain()

cin>>start;

for(

int i =

0;i < wordtot;i++)if

(words[i]

.word[0]

== start)

cout<< maxi

}

普及練習場 深度優先搜尋 P1605 迷宮

題目描述 給定乙個n m 1 n,m 5 方格的迷宮,迷宮裡有t處障礙,障礙處不可通過。給定起點座標和終點座標,問 每個方格最多經過1次,有多少種從起點座標到終點座標的方案。在迷宮中移動有上下左右四種方式,每次只能移動乙個方格。資料保證起點上沒有障礙。輸入輸出格式 輸入格式 第一行n m和t,n為行...

普及練習場 深度優先搜尋 P1092 蟲食算

題目描述 所謂蟲食算,就是原先的算式中有一部分被蟲子啃掉了,需要我們根據剩下的數字來判定被啃掉的字母。現在,我們對問題做兩個限制 首先,我們只考慮加法的蟲食算。這裡的加法是n進製加法,算式中三個數都有n位,允許有前導的0。其次,蟲子把所有的數都啃光了,我們只知道哪些數字是相同的,我們將相同的數字用相...

普及練習場 廣度優先搜尋 P1141 01迷宮

題目描述 有乙個僅由數字0與1組成的n n格迷宮。若你位於一格0上,那麼你可以移動到相鄰4格中的某一格1上,同樣若你位於一格1上,那麼你可以移動到相鄰4格中的某一格0上。你的任務是 對於給定的迷宮,詢問從某一格開始能移動到多少個格仔 包含自身 輸入輸出格式 輸入格式 輸入的第1行為兩個正整數n,m。...