Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
COLORTAB - Bảng màu |
Cho lưới ô vuông kích thước m×n, Các hàng được đánh số từ 1 đến m từ trên xuống dưới, các cột được đánh số từ 1 đến n từ trái sang phải. Ô ở hàng i cột j là ô (i, j). Người ta tô các ô vuông bởi n màu, mã màu được đánh số từ 1 đến n. Ký hiệu Lj là số lượng các màu khác nhau được dùng để tô các ô trong cột j. Ta gọi độ đa sắc của lưới là giá trị maxLj (j = 1..n).
Cho phép hoán đổi màu của hai ô bất kỳ trên lưới. Mỗi phép hoán đổi được mô ta bởi bộ 4 số nguyên (s, u, t, v) cho biết hai ô (s, u) và (t, v) được hoán đổi màu cho nhau.
Yêu cầu: Hãy xác định một dãy các phép hoán đổi để đưa bảng màu về trạng thái có độ đa sắc nhỏ nhất.
Input:
Dòng đầu chứa số T là số bộ dữ liệu (T ≤ 30). T nhóm dòng tiếp theo, mỗi nhóm dòng mô ta một bộ dữ liệu theo khuôn dạng sau:
- Dòng đầu tiên chứa hai số nguyên m, n (m, n ≤ 50)
- Dòng thứ i trong số m dòng tiếp theo chứa n số nguyên ci1, ci2, …, cin mô ta dòng i của bảng màu.
Output:
Gồm T nhóm dòng tương ứng với T bộ dữ liệu ở đầu vào:
- Dòng đầu ghi số nguyên p là số phép hoán đổi cần thực hiện
- p dòng tiếp theo, mỗi dòng ghi 4 số nguyên s, u, t, v mô ta một phép hoán đổi.
Nếu có nhiều dãy phép hoán đổi thì chỉ cần ghi ra dãy phép hoán đổi bất kỳ.
Ví dụ:
Input:
1
2 3
1 2 3
3 1 2
Output:
2
2 1 2 2
2 2 2 3
Được gửi lên bởi: | noname00.pas |
Ngày: | 2017-11-25 |
Thời gian chạy: | 0.100s-1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C-CLANG C CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG C99 JAVA PAS-FPC PYTHON PYTHON3 |
Nguồn bài: | Bài tập Ôn HN 01/2017 (Thầy Đỗ Đức Đông) |
hide comments
2019-01-02 10:43:19 noname00.pas
Test0 3 5 5 4 5 5 4 5 5 4 4 4 4 4 4 4 5 4 5 4 4 4 5 5 4 4 5 5 5 5 1 1 4 4 1 1 4 5 4 3 4 3 1 1 1 5 5 5 1 1 1 3 3 3 5 5 5 3 2 4 2 4 4 2 1 3 3 1 4 3 1 2 2 1 2 2 2 4 3 2 1 2 |