複合詞UVa10391 STL簡單應用

2022-05-02 11:48:10 字數 752 閱讀 8636

一、題目

輸入一系列由小寫字母組成的單詞。輸入已按照字典序排序(這句話就是個陷阱),且不超過120000個。找出所有的複合詞,即恰好由兩個單詞連線而成的單詞。

二、解題思路

要麼列舉兩兩拼接的情況,o(n^2),n這麼大肯定會超時。要麼列舉每個單詞的拆分情況,當單詞比較短時,o(n*m),可能可行。

我們用string型別的陣列儲存這些單詞,map記錄單詞的是否出現,set自動排序並去重。

三、**

1 #include2 #include3 #include4 #include

5 #include

6 #include7 #include8

using

namespace

std;910

const

int maxn = 120000 + 10;11

string

words[maxn];

12 mapmyhash;

13set

ans;

1415

intmain()

1622

for (int i = 0; i < cnt; i++)

2332}33

}34for (set

::iterator it = ans.begin(); it != ans.end(); it++)

35 cout << *it;

36return0;

37 }

《語法》 07 複合詞,接尾詞

上 動詞去 上 1.表示動作,移動等向上。起來 向上 2.表示動作的完成。完成了 好了 動詞去 1.表示把某動作做完 完 2.表示把某種狀態達到極限 非常 十分 動詞去 1.表示 能夠完成 是 的可能形式 動詞去 1.表示 不能 完 不能完全 是 的可能形式的否定方式 直 動詞去 1.重新 表示對前...