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