逆序單詞 HIhoCoder 1366 字典樹

2022-03-16 21:57:25 字數 922 閱讀 2462

在英文中有很多逆序的單詞,比如dog和god,evil和live等等。

現在給出乙份包含n個單詞的單詞表,其中每個單詞只出現一次,請你找出其中有多少對逆序單詞。

第1行:1個整數,n,表示單詞數量。2≤n≤50,000。

第2..n+1行:每行1個單詞,只包含小寫字母,每個單詞長度不超過16個字母。保證每個單詞只出現一次,且不會出現回文單詞(即乙個單詞倒序還是它自己,比如eye)。

輸出第一行是個整數,表示單詞表中的逆序單詞的對數。

這個是我看b站學習字典序上看到的題,基本是個模板題。詳情看**實現吧。

字典樹大體有兩種實現方式,區分是從結點的建立上,一種是使用new分配空間建立,另一種是預先開闢乙個陣列。

下面是兩種形式的**。第二種執行比較快。

#include//時間是453ms

using namespace std;

struct node

}*root;//這個root是字典樹的第乙個結點,也就是樹的根。

void insert(char *s) //插入操作

now->flag++; //可能有多個單詞

}int fid(char *s)//查詢函式

return now->flag;//返回以這個結點為尾的單詞的個數

} void del(node *rot) //因為使用的是new分配的空間,所以使用完畢需要進行刪除。

delete(rot);

}int main()

flag[root]++;

}int find(char *str) //需要根據需要進行匹配

return flag[root];

}int main()

printf("%d\n", ans);

return 0;

}

HihoCoder1366 逆序單詞(字典樹)

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 在英文中有很多逆序的單詞,比如dog和god,evil和live等等。現在給出乙份包含n個單詞的單詞表,其中每個單詞只出現一次,請你找出其中有多少對逆序單詞。第1行 1個整數,n,表示單詞數量。2 n 50,000。第2.n ...

hihocoder中的逆序排隊

題目如下 time limit 10000ms case time limit 1000ms memory limit 256mb 描述在上一回 上上回以及上上上回里我們知道nettle在玩 艦 經過了一番苦戰之後,nettle又獲得了的很多很多的船。這一天nettle在檢查自己的艦隊列表 我們可以...

1366 逆序單詞

轉行做了ios,但是不能忘記c 以後要多刷題目,不論簡單與否 時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述 在英文中有很多逆序的單詞,比如dog和god,evil和live等等。現在給出乙份包含n個單詞的單詞表,其中每個單詞只出現一次,請你找出其中有多少對逆序單詞。...