在英文中有很多逆序的單詞,比如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個單詞的單詞表,其中每個單詞只出現一次,請你找出其中有多少對逆序單詞。...