題解 洛谷P1738 洛谷的資料夾

2022-05-28 23:48:12 字數 1082 閱讀 3933

一、目錄概覽

二、題目大意

三、大致思路

四、**實現

五、**剖析

六、總結回顧

kkksc03想好了很多應該有的資料夾路徑名。

問題是,需要是使這些資料夾都存在,需要新建幾個資料夾呢?

資料夾路徑是什麼?例如/a/b/c,表示在根目錄下有a資料夾,在a資料夾裡有b資料夾,在b資料夾裡有c資料夾。其他路徑同理。

這道題目我們需要用set來解決。

這裡可供學習。

我們在這道題用set的無重性質。

將每個資料夾的路徑都新增進set。

假設給了你乙個/a/b/c。

那麼你需要:

加入a的路徑,set.insert("/a");

加入b的路徑,set.insert("/a/b");

加入c的路徑,set.insert("/a/b/c");

解釋見第五區

#includeusing

namespace

std;

inttotal;

string

now;

int main(void

) push+=now[i];

}set.insert(push);

cout

<1

<

}return0;

}

view code

#includeusing

namespace

std;

inttotal;

string

now;

int main(void

) push+=now[i];//

更新路徑

} set.insert(push);

//加入最後資料夾的路徑

cout<1

/減去「/」這個字串

}

return0;

}

view code

這道題目,我們使用了stl_set來解決問題。set的最大特點是去重和有序性。

洛谷P1738 洛谷的資料夾 Trie

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

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...

洛谷 P1101 題解

這道題可以用深搜 回溯 來寫,相信大部分人都是這麼想的,但是有些人可能在一些地方饒了半天,所以這裡就貼一下我的思路,個人覺得自己的很好懂,除了tx和ty那裡,但是tx和ty的那種用法對於輸出路徑的題目一般很實用 這個算是比較簡單的吧,題目裡給出了具體要找的字串,我們要做的就是對它進行8個方向的搜尋,...