아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

창고 위치 계획

면접 대비

시간 제한2초메모리 제한128 MB

요약
최대 20개의 후보 창고 중 하나 이상을 지어 최대 100개의 상점을 배정할 때, 건설비와 유클리드 배송비의 합이 최소가 되는 조합을 구한다.
난이도

보통10점 중 6점

유형
완전 탐색, 비트 연산, 그리디, 기하
정답자
아직 제출이 없습니다

문제

산업공학의 많은 부분은 산업 공정을 더 효율적으로 만들도록 계획하고 개선하는 일이며, 이 과정에서 제품 기획이나 공급 관리 등 다양한 최적화 문제를 풀게 된다. 이런 문제 중 상당수는 꽤 복잡하지만, 핵심 주제 하나를 자연스럽고 깔끔하게 단순화한 형태는 쉽게 이해할 수 있다.

창고 위치 계획 문제에서는 물품을 공급받아야 하는 여러 개의 상점이 있다. 이 상점들에 물품을 공급하기 위해 창고를 여러 개 지을 수 있다. 창고를 하나 짓는 데는 그 위치에 따라 결정되는 건설 비용이 든다. 한편, 어떤 상점이 배정된 창고에서 멀리 떨어져 있을수록 그 상점까지 물품을 운송하는 비용이 커진다. 따라서 창고의 위치는 건설 비용과 운송 비용 사이에서 균형을 맞추어야 하며, 목표는 전체 비용이 최소가 되도록 창고를 짓는 것이다.

창고와 상점의 위치가 주어지면 운송 비용은 두 지점 사이의 유클리드 거리와 정확히 같다고 가정한다. 또한 한 번 지은 창고는 임의로 많은 상점에 물품을 공급할 수 있다고 가정한다. 창고는 반드시 하나 이상 지어야 한다. 전체 비용은 지은 창고들의 건설 비용의 합에, 모든 상점에 대해 각 상점이 배정된 창고까지의 운송 비용을 더한 값이다.

입력

첫째 줄에는 데이터 집합의 개수를 나타내는 정수 K≥1K \ge 1이 주어진다. 각 데이터 집합의 형식은 다음과 같다.

  • 데이터 집합의 첫째 줄에는 두 정수 nn과 mm이 주어진다. nn은 상점의 수, mm은 고려 대상인 창고 후보 위치의 수이다. 상점의 수는 1≤n≤1001 \le n \le 100, 창고 후보 위치의 수는 1≤m≤201 \le m \le 20을 만족한다.
  • 이어지는 nn개의 줄에는 각 상점의 xx, yy 좌표(실수)가 하나씩 주어진다.
  • 그다음 mm개의 줄에는 각 창고 후보 위치와 건설 비용이 실수 xx, yy, pp로 주어진다. 여기서 p≥0p \ge 0이다.

출력

각 데이터 집합마다 먼저 Data Set x:를 한 줄에 출력한다. 여기서 xx는 데이터 집합의 번호이며 11부터 시작한다. 그다음 줄에 모든 상점에 물품을 공급할 수 있는 최소 전체 비용을 소수점 둘째 자리까지 반올림하여 출력한다.

예제3

  1. 예제 1

    입력
    1
    4 4
    0.1 0.1
    0.0 0.9
    1.0 0.05
    1.1 -0.1
    -0.1 -0.1 0.8
    0 1.1 0.5
    0.7 0 0.3
    0.5 0 0.3
    
    예상 출력
    Data Set 1:
    2.32
    
  2. 예제 2

    입력
    1
    1 1
    0 0
    3 4 1.5
    
    예상 출력
    Data Set 1:
    6.50
    
  3. 예제 3

    입력
    1
    1 1
    2 2
    2 2 0
    
    예상 출력
    Data Set 1:
    0.00