description
給定n個字串,互不相等,你可以任意指定字元之間的大小關係(即重定義字典序),求有多少個串可能成為字典序最小的串,並輸出它們
input
第一行乙個數表示n
之後n行每行乙個字串表示給定的字串
output:
第一行輸出乙個數x表示可行的字串個數
之後輸出x行,每行輸出乙個可行的字串
輸出的順序和輸入的順序一致
sampleinput
6mcfx
akioi
wenl
asampleoutput
5mcfx
ioiwenla
tips
對於100%的資料,
n <= 30000 , 字串總長<= 300000
字符集為小寫字元
solution
trie樹判斷字首, 拓撲排序判環
#include
using
namespace std;
int trie[
300010][
26], tot =1;
bool end[
300010];
string s[
30010];
int ans[
30010
], cnt =0;
int n;
int edge[30]
[30], deg[30]
;bool
top_sort()
return res ==((
1<<26)
-1);
}void
insert
(const string &a)
end[p]
=true;}
bool
search
(const string &a)
return
top_sort()
;}intmain()
for(
int i =
1; i <= n; i++)if
(search
(s[i]))
ans[
++cnt]
= i;
cout << cnt <<
'\n'
;for
(int i =
1; i <= cnt; i++
) cout << s[ans[i]
]<<
'\n'
;return0;
}
牛客 倒置字串
經過函式後變為 beijing.like i 輸入描述 每個測試輸入包含1個測試用例 i like beijing.輸入用例長度不超過100 輸出描述 依次輸出倒置之後的字串,以空格分割 1.先把字串整體倒轉 反轉前 i like beijing.反轉後1 gnijied ekil i 2.把字元傳...
字串雜湊 牛客白兔的字串
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 abab 2abababab ababcbaba 輸出 cpp 52 include using namespace std typedef unsign...
牛客網 字串的統計字串
牛客網 題目描述 給定乙個字串str,返回str的統計字串。例如 aaabbbbcccd 的統計字串為 a 3 b 4 c 3 d 1 輸入字元長度都大於1 解題思路 1.第一種方法輸入的是 aaa n 這種字元。因此我們將當前字元cur指向首字元,從1 字串長度的範圍內開始遍歷判斷當前字元cur是...