Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
TOURS13 - VOI 2013 - Hành trình du lịch |
Công ty du lịch X có dự án tổ chức các hành trình du lịch trong vùng lãnh thổ gồm n điểm du lịch trọng điểm, được đánh số từ 1 tới n. Hệ thống giao thông trong vùng gồm m tuyến đường một chiều khác nhau, tuyến đường thứ j ( j = 1, 2, 3, …, m) cho phép đi từ địa diểm uj đến dịa diểm vj với chi phí đi lại là một số nguyên dương c(uj, vj). Vấn đề đặt ra cho công ty là xây dựng các hành trình du lịch cho mỗi điểm du lịch. Một hành trình du lịch cho địa điểm du lịch i phải được xây dựng sao cho xuất phát từ địa điểm i đi qua một số địa điểm khác rồi quay lại địa điểm xấu phát i với tổng chi phí (được tính như là tổng chi phí của các tuyến đường mà hành trình đi qua) nhỏ nhất.
Input
Dòng đầu tiên số T là số lượng bộ dữ liệu. tiếp đến là T nhóm dòng, mỗi dòng cho thông tin về một bộ dữ liệu theo khuôn dạng sau :
- Dòng thứ nhất chứa 2 số nguyên dương n, m
- Dòng thứ j trong số m dòng tiếp theo chứa ba số nguyên duong uj, vj, c(uj, vj) cho biết thông tin về tuyến đường thứ j. Giả thiết là uj ≠ vj; c(uj, vj) < 10^6; j = 1, 2, …, m
Output
Gồm T nhóm dòng tương ứng với T bộ test vào, mỗi nhóm dòng gồm n dòng, dòng thứ i ghi chi phí của hành trình du lịch cho địa điểm i. Qui ước: Ghi số -1 trên dòng i nếu không tìm được hành trình du lịch cho địa điểm i thỏa mãn yêu cầu đặt ra
Example
Input:1
6 8
1 2 4
2 4 2
4 3 3
3 1 4
4 1 5
3 5 5
5 3 1
5 6 7 Output:
11
11
6
11
6
-1
Ràng buộc:
- Có 30% số test tương ứng với 30% số điểm của bài có n <= 20.
- Có 30% số test tương ứng với 30% số điểm của bài có 20 < n <= 100, m <= 104.
- Có 40% số test tương ứng với 30% số điểm của bài có 100 < n <= 103, m <= 105
Được gửi lên bởi: | VOJ Team |
Ngày: | 2013-01-12 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | Tất cả ngoại trừ: ASM64 GOSU PERL6 PYPY RUST SED |
Nguồn bài: | VOI 2013 - Ngày 2 |
hide comments
|
|||||||
2014-12-26 17:24:21 The Flash
dùng djkstra +heap nhưng chỉ được 64 điểm thôi các bạn thi điểm cao chỉ với |
|||||||
2014-12-15 17:51:00 Sơn Tùng M-TP
FBM 86d Dijkstra + Heap 40 ??? |
|||||||
2014-12-06 13:56:27 Virus
Dijkstra heap và đã làm như lời Hoàng Steven, nhưng chỉ được 64 điểm :'( |
|||||||
2013-12-30 11:12:33 !
tớ dùng dijkstra bt chi dc 34d,dung dijkstra heap chi dc 84.AC mai chua dc |
|||||||
2013-12-27 15:20:11 Xiao Lang
N kích thước có 1000, 1000*1000*Log(2,100000) chạy ngon mỗi tội TLE ở cái... Dữ liệu vào gồm T test... Last edit: 2013-12-27 15:20:26 |
|||||||
2013-12-27 15:16:12 Xiao Lang
Dijkstra n đỉnh :D |
|||||||
2013-12-22 09:59:30 ngkhoi
dùng dijkstra heap vẫn chỉ 86, có thuật toán nào hiểu quả hơn không nhỉ? |
|||||||
2013-12-17 10:00:29 Khắc Bảo
Vậy là mình phải dh\jkstar tất cả các đỉnh trong đồ thị hay chỉ cần dihkstar 1 đỉnh |
|||||||
2013-12-16 16:54:07 Xiao Lang
Dijkstra bình thường có điều lúc Dijkstra lần đầu mình khởi tạo cái đỉnh xuất phát là d[s]=0 đó, sau khi tìm các đỉnh kề với đỉnh s rồi thì cho d[s]=maxlongint rồi tiếp tục. Trong các quá trình tiếp theo nó sẽ tối ưu lại nhãn d[s] và kết quả chính là d[s] là 1 tour ngắn nhất đó. Cách này vẫn TLE không biết tại máy chấm yếu hay tại mình code chạy lâu nữa. 90 điểm hết cỡ |
|||||||
2013-12-10 15:06:14 Khắc Bảo
Mình làm theo cách Dijkstra tất cả các đỉnh dồ thị. Duyệt tất cả các đỉnh, với mỗi đỉnh tìm j sau cho D[i,j]+D[j,i] nhỏ nhất. mà sao có 4d à hjx |