時間限制: 1 s
空間限制: 128000 kb
題目等級 : 鑽石 diamond
題解給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i->j算一次接龍(兩個相同的單詞不能算接龍)。
你的任務是:對於輸入的單詞,找出最長的龍。
輸入描述 input description
第一行為n(1<=n<=105)。以下n行每行乙個單詞(由小寫組成),已經按長度排序。(每個單詞長度<50)
輸出描述 output description
僅乙個數,為最長的龍的長度。
樣例輸入 sample inputia
intable
inter
樣例輸出 sample output
資料範圍及提示 data size & hint
1<=n<=105
/*字典樹(80分)
陣列開大了超空間 小了re......
正解為單調棧
*/#include
#include
#include
#include
#define maxn 1211110
#define maxx 110
using
namespace
std;
intn,tot,ans;
char
s[maxx];
struct
tree
t[maxn];
void
add()
else
}if(!t[now].w)len++;
t[now].w=1
; ans=max(ans,len);
}int
main()
printf(
"%d\n
",ans);
return0;
}
/*正解為單調棧
維護乙個棧,讓棧中的元素都滿足
前乙個是後乙個的字首
棧的最大長度即為答案
*/#include
#include
#include
#include
#include
#define maxn 100010
using
namespace
std;
string
s[maxn];
stack
t;int n,ans=1
;int
main()
}if(flag)break
; t.pop();
}t.push(i);
if(t.size()>ans)
ans=t.size();
}printf(
"%d\n
",ans);
return0;
}
codevs 1051 接龍遊戲
時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i j算一次接龍 兩個相同的單詞不能算接龍 你的任務是 對於輸入的單詞,找出最長的龍。輸入描述 input description 第一行為n 1 n 1...
CODEVS 1051 接龍遊戲
題目描述 description 給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i j算一次接龍 兩個相同的單詞不能算接龍 你的任務是 對於輸入的單詞,找出最長的龍。輸入描述 input description 第一行為n 1 n 105 以下n行每行乙個單詞 由小寫組成 已經按...
codevs1051 接龍遊戲 棧
給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i j算一次接龍 兩個相同的單詞不能算接龍 你的任務是 對於輸入的單詞,找出最長的龍。第一行為n 1 n 105 以下n行每行乙個單詞 由小寫組成 已經按長度排序。每個單詞長度 50 僅乙個數,為最長的龍的長度。ia intable ...