洛谷的資料夾(樹形結構 DFS 字串雜湊)

2021-08-09 18:28:34 字數 1387 閱讀 4180

luogu p1738

題目描述

輸入輸出格式

輸入格式:

輸入檔案第1行為乙個正整數n。

接下來n行,每行為乙個描述路徑的字串,長度均不超過100。

輸出格式:

輸出應包含n行,每行1個正整數,第i行輸出若要使第1個路徑到第i個路徑存在,最少需要新建多少個資料夾。

樣例輸入2:

3 /chicken

/chicken/egg

/chicken

樣例輸入3:

4 /a

/a/b

/a/c

/b/b

樣例輸出1: 3 4

樣例輸出2:

1 2

2樣例輸出3:

1 2 3 5

說明 資料規模:

對於所有資料,n<=1000。

對於20%資料,有n<=20;

對於50%資料,有n<=200;

對於30%資料,有對於所有路徑最多存在兩個』/』(包含第1個字元)。

首先,我們應該注意到這是乙個樹形結構,這個我們可以結合trie樹來理解,我們在處理每乙個路徑的時候,要把每乙個「/」分隔開的子字串處理成雜湊數。

然後對於之前不存在的節點,就加乙個節點來處理。如果存在,那我們就順著它向下dfs,統計總更新的節點數。

需要注意的一點就是,要開乙個超級根節點來連線第一等級。

題解 洛谷P1738 洛谷的資料夾

一 目錄概覽 二 題目大意 三 大致思路 四 實現 五 剖析 六 總結回顧 kkksc03想好了很多應該有的資料夾路徑名。問題是,需要是使這些資料夾都存在,需要新建幾個資料夾呢?資料夾路徑是什麼?例如 a b c,表示在根目錄下有a資料夾,在a資料夾裡有b資料夾,在b資料夾裡有c資料夾。其他路徑同理...

洛谷P1738 洛谷的資料夾 Trie

給出nn 個目錄位址,為了使這些資料夾都存在,需要新建幾個資料夾?一眼看上去就是tri etri e。雖然暴力可過。這道題其實就是不用查詢的tri etri e。直接每次輸出這棵樹的節點數量就可以了。每次找到這個目錄的下乙個 取出這乙個資料夾的名稱,再在當前已找到的節點上尋找是否有這個資料夾,如果有...

遞迴列印樹形目錄結構展現資料夾及其子檔案

public class treefile 遞迴列印檔案與資料夾 方法一 param file public static void getfileandfolder file file else 注 此程式只會遞迴列印資料夾及其子檔案,沒有像在cmd中使用tree命令能看出子目錄與父目錄的效果 p...