這天,tree 很歡樂地考上了程設進階班,
但是他一進電腦教室就被進階教學問:
「阿進階班要具備的先備知識像二分搜、Sort、DP、Greedy、DFS、線段樹、矩陣快速冪之類的,你都會了嗎?」
tree:「...?我會二分搜、Sort,但你講的這些不是今年進階班才要學的東西嗎?!」
進階教學:「哈哈,進階班才沒有那麼簡單呢...不然我放個水,給你一個字串 $s$,你可以告訴我這個字串的各個字元經過重新排列後可以產生幾種字串嗎?」
身為數學廢柴的 tree,對於這種需要高一數學的題目自然是束手無策。
tree:「窩不會啦 QQ,可不可以考一點小學算數阿,這樣我可能還有機會答出來...」
進階教學:「進階班當然看不上小學算數!我看你還是從一開始......不,從零開始學習程式吧!」
雖然 tree 的玻璃心受到打擊,但擁有上進心的 tree 覺得剛剛進階教學出的題目感覺很好玩,所以他決定在街上遇到人就問:
「如果給你一個字串 $s$,你可以告訴我這個字串的各個字元經過重新排列後可以產生幾種字串嗎?」
今天很不幸地,你被 tree 纏上了,
由於一時之間你也做不了心算,所以你決定用程式解決這惱人的傢伙。
請各位來打 code 吧!
第一行有一數 $T$,代表 tree 出了幾題給你。
第二行 ~ 第 $T + 1$ 行,每行有一個字串 $s_i$,
且保證 $s_i$ 僅包含數字、大寫英文及小寫英文字元。
對於每個 $s_i$,輸出題目要求之答案並換行。
由於答案可能很大,請 $mod\; 1000000007$ 後再輸出。
(注意:原字串也算是一種重新排列後的字串)
4 asdfg fdcsc BBKKBBK BbKKBBk
120 60 35 420
$20\%$ 測資,$\lvert s \rvert \leq 10$
$40\%$ 測資,$\lvert s \rvert\leq 60 $,且 $s$ 沒有重複字元。
$70\%$ 測資,$\lvert s \rvert\leq 10^3$
$100\%$ 測資,$\lvert s \rvert\leq 10^5$,$1\leq T\leq 1000$
對於一個沒有重複字元的字串,假設長度為 $n$,則組合數有 $n!\;\;$
而如果有一字元重複 $k$ 次,則組合數變為 $\cfrac{n!}{k!}$
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |