trang chủ / bài tập / delivcost

Giảm chi phí giao hàng

Đề bài

Mô tả

Cho một đồ thị vô hướng liên thông gồm n đỉnh và m cạnh. Cạnh thứ i nối hai đỉnh xiyi với trọng số wi (chi phí đi qua cạnh đó).

k tuyến giao hàng. Tuyến thứ i đi từ đỉnh ai đến đỉnh bi. Người đưa hàng luôn chọn con đường có tổng chi phí nhỏ nhất giữa aibi. Cho phép ai=bi (khi đó chi phí là 0), và các tuyến có thể trùng nhau (mỗi tuyến vẫn được đếm riêng).

Bạn được phép chọn nhiều nhất một cạnh và đặt chi phí của cạnh đó bằng 0 (hoặc không chọn cạnh nào). Gọi d(u,v) là chi phí nhỏ nhất giữa hai đỉnh uv sau khi thay đổi. Hãy tìm giá trị nhỏ nhất có thể của tổng

i=1kd(ai,bi).

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k.
  • m dòng tiếp theo, mỗi dòng chứa ba số nguyên xi, yi, wi mô tả một cạnh.
  • k dòng cuối, mỗi dòng chứa hai số nguyên ai, bi mô tả một tuyến giao hàng.

Dữ liệu ra

In ra một số nguyên duy nhất — tổng chi phí nhỏ nhất có thể đạt được.

Ràng buộc

  • 2n1000
  • n1mmin(1000,n(n1)2)
  • 1k1000
  • 1xi,yin, xiyi, 1wi1000
  • 1ai,bin
  • Đồ thị liên thông và giữa mỗi cặp đỉnh có nhiều nhất một cạnh trực tiếp.

Ví dụ

Input Output Giải thích
6 5 2
1 2 5
2 3 7
2 4 4
4 5 2
4 6 8
1 6
5 3
22 Chọn cạnh (2,4) hoặc (4,6) để đặt chi phí bằng 0, cả hai đều cho tổng chi phí là 22.
5 5 4
1 2 5
2 3 4
1 4 3
4 3 7
3 5 2
1 5
1 3
3 3
1 5
13 Chọn cạnh (3,4) để đặt chi phí bằng 0, tổng chi phí là 13.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0