【題目描述】
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的「龍」(每個單詞都最多在「龍」**現兩次),在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存在包含關係,例如at和atide間不能相連。【輸入】
輸入的第一行為乙個單獨的整數n(n≤20)表示單詞數,以下n行每行有乙個單詞(只含有大寫或小寫字母,長度不超過20),輸入的最後一行為乙個單個字元,表示「龍」開頭的字母。你可以假定以此字母開頭的「龍」一定存在。【輸出】
只需輸出以此字母開頭的最長的「龍」的長度。【輸入樣例】
5【輸出樣例】 參考部落格attouch
cheat
choose
tact
a
這個還有這個
**
#include
#include
#include
#include
using
namespace std;
#define min(a,b) (((a)<(b))?(a):(b))
int n, vis[
10000
], ans =0;
//vis用來判斷第i個是否已經被連線過,ans用來儲存最大字串長度
string str[
10000];
//用來儲存輸入的字串
bool
check
(string a, string b,
int k)
//該函式負責判斷now字串的後半部分和當前的str[i]字串的前半部分是否重合
return
true;}
void
add(string& a, string b,
int k)
void
dfs(string now)
//now代表現在正在處理的字串}}
}int
main()
資訊學奧賽一本通C 語言 1220 單詞接龍
題目描述 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分...
一本通 1406 單詞替換 詳解
原題 題意解析 題目整體是比較好理解的,將輸入的文章中的特定單詞進行替換即可 解題思路 這個題目我有兩種解題思路 思路一 利用字元陣列來進行,完成輸入後,將待替換的單詞a與原文s進行逐個單詞的比較,如果單詞相同,那麼輸出替換單詞b,具體 如下 includeusing namespace std i...
佇列(一本通)
這道題重點是關係的轉換和初始化 include include include includeusing namespace std int a 101 記錄接著的的那個節點 int n,m int main int ans void bfs int x,int y int main cout in...