장난감은 n 개의 부품과 m 개의 로프로 구성됩니다. 각 로프는 두 부분을 연결하지만 모든 부품 쌍은 하나의 로프로 연결됩니다. 장난감을 분리하려면 어린이가 모든 부품을 제거해야합니다. 아이는 한 번에 하나의 부분을 제거 할 수 있으며, 각 제거는 에너지를 소비합니다. 파트 i의 에너지 값을 vi로 정의합시다. 아이는 파트 i를 제거하기 위해 vf1 + vf2 + ... + vfk 에너지를 소비합니다. 여기서 f1, f2, ..., fk는 i 번째에 직접 연결되어 제거되지 않은 파트입니다.
노드 제거
솔루션 제안 : 모든 노드를 삭제하는 가장 좋은 방법은 값의 내림차순으로 삭제하는 것입니다.
코드 :
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);
}
}
모든 n 개의 노드를 삭제하는 문 최선의 방법을 설명해주십시오 내림차순을 삭제합니다. 왜 우리는 한 노드의 코트에만 추가할까요? Problem LInk
현재 솔루션의 문제점은 무엇입니까? – Keppil
@Keppil 나는 왜 이것을 묻는 중입니까? 한 노드의 무게만을 고려하여 정답을 제공하는 방법 – user4415506