Skip to content

2872-maximum-number-of-k-divisible-components

DevGod
DevGod
Elf Vtuber
/**
* @param {number} n
* @param {number[][]} edges
* @param {number[]} values
* @param {number} k
* @return {number}
*/
var maxKDivisibleComponents = function(n, edges, values, k) {
if(n == 1){return 1;}
let graph = {};
for(let [X,Y] of edges){
if(graph[X] === undefined){graph[X] = [];}
if(graph[Y] === undefined){graph[Y] = [];}
graph[X].push(Y);
graph[Y].push(X);
}
let score = 0;
let visit = new Set();
let dfs = function(I=0){
let sum = values[I]%k;
visit.add(I);
for(let node of graph[I]){
sum += !visit.has(node) ? dfs(node) : 0;
}
sum %= k;
if(sum == 0){
score++;
}
return sum;
}
dfs(0);
return score;
};