翔哥哥的手機由於藏著許多屬於「機密」等級的檔案,這些檔案若外流可就不妙了。因此,對翔哥哥來說,設計一組好的密碼可是相當重要的。
比起傳統的PIN碼或是密碼,翔哥哥更喜歡使用「圖形密碼」來為他的手機上鎖,因為圖形密碼不僅對他的手機是一種保障,更是一門深奧的藝術呢!
圖形密碼是由排成正方形的九個點及數條線段組成,使用者在點與點間連線,並完成設計屬於自己的一種圖形。要特別注意的是,圖形密碼有幾項特別的規則:圖形至少要經過四個點,最多可以九個點全部連一次,但已經連過的點不能重複再連。若連接兩個點時,中間恰好經過的那個點尚未被連過,則該點也會一起被連接,若該點已被連過則會直接忽略。還有長的完全相同的兩個圖形,若連接順序不相同,則也視為兩種相異的圖形。用講的太麻煩了,看看下面的例子吧:
首先,我們將九個點依序標上A到I的英文字母(左圖),中間的圖片便是一種符合以上規則的密碼,而其中一種連法是依序連過B、D、E、F、C、H點,我們將這種連法寫為「BDEFCH」,其密碼長度為6(因為經過6個點)另一種連法則是「HCFEDB」。再看看右邊的圖片,「ABCEGHIF」是一種符合規則的連法,但「ABCEFIHGE」不是,因為E點被連到了兩次,所以不是一種符合規則的連法,而在連接線段AC時,因為A、C間的B點尚未被連接,故會自動被連接上去。此外,「BACEGHIF」也是一種符合規則的連法,在這種連法中的AC線段,因為B點先前已被連接過,故此處會自動略過。
正當翔哥哥設定好屬於他的密碼時,原以為可以高枕無憂,沒想到覬覦機密資料的勻勻搶走了他的手機,威脅他不給密碼就搗蛋。於是翔哥哥與勻勻達成協議:翔哥哥告訴勻勻密碼的長度,並告訴他密碼通過的部分點的代碼,若勻勻能解開就讓他看這些檔案。沒想到,一給出提示,勻勻瞬間就破解出密碼。不過幸好勻勻不了解檔案中數組英文字母與三個數字的組合,讓翔哥哥暫時鬆一口氣。為了防止未來有類似的事情再次發生,你能幫翔哥哥寫出一支程式,找出指定長度通過指定點的密碼有多少組合,幫他找出最強密碼嗎?
輸入有兩行。第一行包含兩個正整數L、N,分別表示密碼長度及提示的指定點數量。第二行包含N個不重複的英文字母(A~I),表示已知密碼通過的點。請注意,字母出現順序不代表連接密碼的順序。
請輸出長度為L,且經過所有指定點的密碼組合數量。
SAMPLE INPUT 1: 4 4 A B C D SAMPLE INPUT 2: 5 4 A C G I SAMPLE INPUT 3: 9 1 A
SAMPLE OUTPUT 1: 18 SAMPLE OUTPUT 2: 0 SAMPLE OUTPUT 3: 140704
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」
|