Игрушка состоит из n частей и веревок. Каждая веревка соединяет две части, но каждая пара частей соединена не более чем одним канатом. Чтобы разбить игрушку, ребенок должен удалить все его части. Ребенок может удалить одну часть за раз, и каждый из них уничтожает энергию. Определим энергетическое значение части i как vi. Ребенок проводит vf1 + vf2 + ... + vfk энергию для удаления части i, где f1, f2, ..., fk - это части, которые непосредственно связаны с i-м и не удалены.
Снятие узла
Решение Предлагает следующее: Лучший способ удалить все n узлов - удалить их в порядке убывания их значения.
Код:
int n = in.nextInt();
int m = in.nextInt();
int[] w = new int[n];
for(int i=0;i<n;i++) {w[i]=in.nextInt();
}
int[] c = new int[n];
int ans =0;
for(int i=0;i<m;i++){
int xx = in.nextInt();
int yy = in.nextInt();
ans+= Math.min(w[--xx],w[--yy]);
}
System.out.println(ans);
}
}
Объясните, пожалуйста, лучший способ заявление, чтобы удалить все п узлов удаляет их в порядке убывания. почему мы добавляем только код только одного узла? Problem LInk
В чем проблема с вашим текущим решением? – Keppil
@ Keppil Я спрашиваю, почему это? Как это дает правильный ответ, учитывая вес одного узла только – user4415506