【問題K19】多元樹。 [回頁]

利用電腦做資料處理,經常使用樹狀的資料結構,例如磁碟儲存所使用的檔案系統。檔案系統的有許多不同設計,對一般的個人電腦使用者,最基本的就是目錄和檔案的觀念。一個檔案系統,首先會提供一個根目錄做為進入點,而每一個目錄都可以有下層的子目錄,共且擁有一些檔案,這些檔案才是資料存放主要的地方。為了讓這些檔案有條不紊,使用者可以根據目錄的結構加以分類,將檔案放置在適當的地方。

這個題目中,我們將提供不同檔案系統的目錄結構,希望能夠找出結構種類的數目。由於瀏覽相同結構的目錄時,搜尋子目錄的順序不一定相同,因此,我們定義兩個目錄x和y結構相同的條件為︰

1.x和y有相同數量n個子目錄。

2.如果n > 0,x有子目錄x1, ¼, xn,y有子目錄y1, ¼, yn,存在一對一的映射 { f(i) | i = 1, ¼, n } = { 1, ¼, n },使得xf(i) 和yi結構相同。

當兩檔案系統的根目錄結構相同,則兩個檔案系統目錄結構相同。

輸入檔說明

輸入檔中有零個或以上檔案系統的根目錄結構。每個目錄結構以括號 ¢(¢ 起始、以 ¢)¢ 結束,括號內含零個或以上的子目錄結構。檔案最後以 ¢*¢ 表示資料結束,總共最多100,000對括號。在括號之間,可能換行或是存在任意數目的空白。

輸出檔說明

請輸出一個整數,表示有多少種類的目錄結構。範例輸入

()

( ( ( () () ) ( () ) ) ( () ) )

( ( () ) ( ( () ) ( () () ) ) )

(

)

*

範例輸出

2