From 8cfeccf715c496e8844c25a41c5331d4dba4b992 Mon Sep 17 00:00:00 2001 From: wisdompeak Date: Sun, 6 Jul 2025 23:26:44 -0700 Subject: [PATCH 1/3] Create 3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph.cpp --- ...to-Reach-Destination-in-Directed-Graph.cpp | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph.cpp diff --git a/BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph.cpp b/BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph.cpp new file mode 100644 index 000000000..c044719f0 --- /dev/null +++ b/BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph.cpp @@ -0,0 +1,41 @@ +struct state { + int node, time; + bool operator<(state const& o) const { + return time> o.time; + } +}; +class Solution { + vector>next[100005]; +public: + int minTime(int n, vector>& edges) { + for (auto& e:edges) { + int u=e[0], v=e[1], start=e[2], end=e[3]; + next[u].push_back({v, start, end}); + } + + vectorvisited(n, -1); + priority_queuepq; + pq.push({0,0}); + + while (!pq.empty()) { + auto [node, time] = pq.top(); + // cout<s+1)) { + pq.push({v, s+1}); + } + if (time>= s && time <=e && (visited[v]==-1 || visited[v]>time+1)) { + pq.push({v, time+1}); + } + } + } + + return -1; + } +}; From 34b99fdf1df35eccb930e86037280427907f6d6c Mon Sep 17 00:00:00 2001 From: wisdompeak Date: Sun, 6 Jul 2025 23:27:13 -0700 Subject: [PATCH 2/3] Update Readme.md --- Readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Readme.md b/Readme.md index e66d0c672..68e0d1168 100644 --- a/Readme.md +++ b/Readme.md @@ -670,6 +670,7 @@ [2203.Minimum-Weighted-Subgraph-With-the-Required-Paths](https://github.com/wisdompeak/LeetCode/tree/master/BFS/2203.Minimum-Weighted-Subgraph-With-the-Required-Paths) (H-) [2473.Minimum-Cost-to-Buy-Apples](https://github.com/wisdompeak/LeetCode/tree/master/BFS/2473.Minimum-Cost-to-Buy-Apples) (M) [3594.Minimum-Time-to-Transport-All-Individuals](https://github.com/wisdompeak/LeetCode/tree/master/BFS/3594.Minimum-Time-to-Transport-All-Individuals) (H) +[3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph](https://github.com/wisdompeak/LeetCode/tree/master/BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph) (M+) * ``Dijkstra (for Bipatite Graph)`` [1066.Campus-Bikes-II](https://github.com/wisdompeak/LeetCode/tree/master/BFS/1066.Campus-Bikes-II) (H+) [1879.Minimum-XOR-Sum-of-Two-Arrays](https://github.com/wisdompeak/LeetCode/tree/master/BFS/1879.Minimum-XOR-Sum-of-Two-Arrays) (H) From cadcbf3ae683b493129a3b7fdd23c3614197ea8c Mon Sep 17 00:00:00 2001 From: wisdompeak Date: Sun, 6 Jul 2025 23:30:12 -0700 Subject: [PATCH 3/3] Create Readme.md --- .../Readme.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph/Readme.md diff --git a/BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph/Readme.md b/BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph/Readme.md new file mode 100644 index 000000000..cadb887a1 --- /dev/null +++ b/BFS/3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph/Readme.md @@ -0,0 +1,12 @@ +### 3604.Minimum-Time-to-Reach-Destination-in-Directed-Graph + +常规的Dijkstra的模版题。本题优先队里的元素需要定义状态 +```cpp +struct state { + int node, time; + bool operator<(state const& o) const { + return time> o.time; + } +}; +``` +对于出队列的一个状态{node,time},我们可知到达node的最短时间就是time。然后我们检查它周围的路径{v,start,end}。如果time

AltStyle によって変換されたページ (->オリジナル) /