kk
This commit is contained in:
36
src/main/java/com/dota/graph/Solution.java
Normal file
36
src/main/java/com/dota/graph/Solution.java
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
package com.dota.graph;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
|
||||||
|
long res = 0;
|
||||||
|
|
||||||
|
public long minimumFuelCost(int[][] roads, int seats) {
|
||||||
|
List<Integer>[] map = new List[roads.length + 1];
|
||||||
|
for (int i = 0; i < map.length; i++) {
|
||||||
|
map[i] = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int[] road : roads) {
|
||||||
|
map[road[0]].add(road[1]);
|
||||||
|
map[road[1]].add(road[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
dfs(0, -1, seats, map);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dfs(int start, int from, int seats, List<Integer>[] map) {
|
||||||
|
int cur = 1;
|
||||||
|
for (Integer i : map[start]) {
|
||||||
|
if (i != from) {
|
||||||
|
int childSum = dfs(i, start, seats, map);
|
||||||
|
cur += childSum;
|
||||||
|
res += (childSum + seats - 1)/seats;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user