LQDOJ Cup 2024 - Round #7

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 LQDOJ Cup 2024 - Round #7 - Đồ chơi 700 (p) 1.5s 1G
2 LQDOJ Cup 2024 - Round #7 - Taxi tiết kiệm 700 (p) 1.25s 1G
3 LQDOJ Cup 2024 - Round #7 - Tô màu 600 (p) 1.0s 1G

1. LQDOJ Cup 2024 - Round #7 - Đồ chơi

Điểm: 700 (p) Thời gian: 1.5s Bộ nhớ: 1G Input: TOY.inp Output: TOY.out

Trong một cửa hàng đồ chơi, có \(n\) món đồ chơi được xếp thành một hàng. Các món đồ chơi được đánh số đánh số từ \(1\) đến \(n\) (từ trái sang phải). Ban đầu, món đồ chơi thứ \(i\) có giá là \(a_{i}\) đồng.

Nhân ngày 26 tháng 10 năm 2024, bạn Trung mua đồ chơi tặng hai em An và Bình. Do không biết các em của mình thích đồ chơi như thế nào, bạn Trung quyết định mua một số món đồ chơi liên tiếp trên hàng, chia chúng thành hai tập (mỗi tập gồm các món đồ chơi có chỉ số liên tiếp nhau và mỗi món đồ chơi thuộc đúng một đoạn). Sau đó tặng cho hai em của mình mỗi người một tập.

Do bạn Trung là một người rất có tâm nên Trung muốn tìm cách chia sao cho chênh lệch giá trị các món qùa mà An và Bình được nhận là nhỏ nhất.

Tuy nhiên, hôm nay là một ngày rất đặc biệt nên có rất nhiều sự kiện xảy ra liên tục, ta có thể chia chúng thành hai loại:

  • \(1\) \(i\) \(x\): Chủ quán gỡ món đồ chơi thứ \(i\) xuống và thay vào đó một món đồ chơi khác có giá là \(x\).
  • \(2\) \(l\) \(r\): Bạn Trung tự hỏi rằng, nếu mua các món đồ liên tiếp từ \(l\) đến \(r\), chênh lệch giá trị các món đồ được nhận của hai em là bao nhiêu.

Với mỗi sự kiện loại hai, hãy giúp bạn Trung bằng cách trả lời câu hỏi của Trung.

Input

  • Dòng đầu tiên gồm \(2\) số nguyên dương \(n\)\(q\) \((1 \leq n, q \leq 2 \times 10^{6})\) - Số lượng món đồ chơi trong cửa hàng và số sự kiện xảy ra hôm nay.
  • Dòng thứ hai gồm \(n\) số nguyên \(a_{1}, a_{2}, \ldots, a_{n}\) \((1 \leq a_{i} \leq 10^{9})\) - Giá trị của các món đồ chơi.
  • Dòng thứ \(i\) trong \(q\) dòng tiếp theo mô tả về sự kiện thứ \(i\) thuộc một trong hai loại sau:
    • \(1\) \(i\) \(x\) \((1 \leq i \leq n, 1 \leq x \leq 10^{9})\) mô tả sự kiện loại \(1\).
    • \(2\) \(l\) \(r\) \((1 \leq l \leq r \leq n)\) mô tả sự kiện loại \(2\).

Output

  • Gồm một số dòng, dòng thứ \(i\) là câu trả lời cho sự kiến loại hai thứ \(i\).

Scoring

  • Subtask \(1\) (\(22\%\) số điểm): \(n, q \leq 5000\).
  • Subtask \(2\) (\(24\%\) số điểm): Không có sự kiện loại một.
  • Subtask \(3\) (\(26\%\) số điểm): \(n, q \leq 2 \times 10^{5}\).
  • Subtask \(4\) (\(28\%\) số điểm): không có rằng buộc gì thêm.

Example

Test 1
Input
5 3
1 2 3 4 5
2 2 4
1 2 5
2 2 4
Output
1
2
Note
  • Ban đầu, \(a = [1, 2, 3, 4, 5]\).
  • Câu hỏi \(1\), giá trị các món được mua: \([2, 3, 4]\), chia thành hai tập \([2, 3]\)\([4]\) có tổng giá trị lần lượt là \(5\)\(4\), chênh lệch tổng giá trị là \(1\).
  • Sau sự kiện tiếp theo, mảng \(a\) trở thành: \([1, 5, 3, 4, 5]\)
  • Câu hỏi \(2\), giá trị các món được mua: \([5, 3, 4]\), chia thành hai tập \([5]\)\([3, 4]\) có tổng giá trị lần lượt là \(5\)\(7\), chênh lệch tổng giá trị là \(2\).
Test 2
Input
10 5
1 2 3 4 5 5 4 3 2 1
2 1 3
2 2 10
2 3 7
2 6 8
2 9 10
Output
0
1
3
2
1
Note
  • Ban đầu, \(a = [1, 2, 3, 4, 5, 5, 4, 3, 2, 1]\).
  • Câu hỏi \(1\), giá trị các món được mua: \([1, 2, 3]\), chia thành hai tập \([1, 2]\)\([3]\) có tổng giá trị lần lượt là \(3\)\(3\), chênh lệch tổng giá trị là \(0\).
  • Câu hỏi \(2\), giá trị các món được mua: \([2, 3, 4, 5, 5, 4, 3, 2, 1]\), chia thành hai tập \([2, 3, 4, 5]\)\([5, 4, 3, 2, 1]\) có tổng giá trị lần lượt là \(14\)\(15\), chênh lệch tổng giá trị là \(1\).
  • Câu hỏi \(3\), giá trị các món được mua: \([3, 4, 5, 5, 4]\), chia thành hai tập \([3, 4, 5]\)\([5, 4]\) có tổng giá trị lần lượt là \(12\)\(9\), chênh lệch tổng giá trị là \(3\).
  • Câu hỏi \(4\), giá trị các món được mua: \([5, 4, 3]\), chia thành hai tập \([5]\)\([4, 3]\) có tổng giá trị lần lượt là \(5\)\(7\), chênh lệch tổng giá trị là \(2\).
  • Câu hỏi \(5\), giá trị các món được mua: \([2, 1]\), chia thành hai tập \([2]\)\([1]\) có tổng giá trị lần lượt là \(2\)\(1\), chênh lệch tổng giá trị là \(1\).

2. LQDOJ Cup 2024 - Round #7 - Taxi tiết kiệm

Điểm: 700 (p) Thời gian: 1.25s Bộ nhớ: 1G Input: TAXI.inp Output: TAXI.out

Cho một thành phố gồm \(n\) địa điểm được đánh số từ \(1\) đến \(n\)\(m\) con đường nối giữa các địa điểm sao cho luôn tồn tại ít nhất một đường đi giữa hai địa điểm bất kỳ. Có \(k\) vị khách mời đang đứng tại các địa điểm khác nhau, lần lượt là \(a_{1}, a_{2}, \ldots, a_{k}\), và tất cả họ đều cần di chuyển đến một địa điểm chung là \(T\) để tham dự một hội nghị quan trọng. Mỗi con đường đi giữa hai địa điểm \(u\)\(v\) có một trọng số \(w\) biểu thị chi phí di chuyển bằng taxi giữa hai địa điểm này.

Các vị khách khi đi taxi có thể lựa chọn đi riêng lẻ hoặc kết hợp thành nhóm nếu họ gặp nhau tại cùng một điểm. Trong trường hợp đi chung, chi phí di chuyển sẽ được chia đều cho số vị khách cùng đi trong nhóm.

Hãy đưa ra phương án di chuyển sao cho tổng chi phí di chuyển của \(k\) người cộng lại là bé nhất có thể.

Input

  • Dòng đầu tiên chứa bốn số nguyên dương \(n, m, k\)\(T\) \((1 \leq n, m \leq 10^{4}, 1 \leq k \leq 8, 1 \leq T \leq n)\) lần lượt thể hiện số địa điểm của thành phố, số con đường của thành phố, số lượng khách mời và địa điểm tổ chức cuộc hội nghị.
  • Dòng thứ hai chứa \(k\) số nguyên dương \(a_{1}, a_{2}, \ldots, a_{k}\) \((1 \leq a_{i} \leq n)\) thể hiện vị trí ban đầu của các vị khách mời.
  • \(m\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(u, v\)\(w\) \((1 \leq u, v \leq n, u \neq v, 1 \leq w \leq 10^{9})\) thể hiện rằng có một con đường hai chiều kết nối giữa địa điểm thứ \(u\) và địa điểm thứ \(v\) với giá đi taxi là \(w\).

Output

  • Dòng đầu tiên chứa một số nguyên \(e\) thể hiện tổng chi phí tối thiểu trong phương án của bạn.
  • Dòng thứ hai chứa một số nguyên không âm \(X\) thể hiện số lần thuê taxi trong phương án của bạn.
  • \(X\) dòng tiếp theo, mỗi dòng chứa một xâu nhị phân độ dài \(k\), một số nguyên \(u\) và một số nguyên \(v\) thể hiện chuyến taxi đi từ \(u\) tới \(v\) với những vị khách đi trên chuyến taxi này được thể hiện bằng giá trị $1$ trên xâu nhị phân.

Cách tính điểm

  • Bạn sẽ nhận được \(100\%\) số điểm của test khi tổng chi phí nhỏ nhất là chính xác và phương án truy vết là một trong bất kỳ các phương án hợp lệ.
  • Bạn sẽ nhận được \(0\%\) số điểm của test khi tổng chi phí nhỏ nhất sai, hoặc bạn đưa ra output sai định dạng, hoặc output của bạn chứa ký tự lạ.
  • Trả lời đúng chi phí tối ưu mà truy vết sai sẽ nhận được \(40\%\) số điểm của test đó.

Scoring

  • Subtask \(1\) (\(21\%\) số điểm): \(k = 1\).
  • Subtask \(2\) (\(19\%\) số điểm): \(k = 2\).
  • Subtask \(3\) (\(17\%\) số điểm): \(k \leq 6\).
  • Subtask \(4\) (\(15\%\) số điểm): \(n, m \leq 500\).
  • Subtask \(5\) (\(15\%\) số điểm): \(m < n\).
  • Subtask \(6\) (\(13\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1
Input
5 5 2 2
5 2
1 2 2
5 4 9
1 3 2
5 3 5
4 2 19
Output
9
3
10 5 3
10 3 1
10 1 2
Note

Trong ví dụ này có \(2\) vị khách đứng ở \(5, 2\) cần di chuyển tới địa điểm \(2\). Vì vị khách ở vị trí \(2\) đã ở tại địa điểm cuộc họp nên vị khách này không cần di chuyển còn vị khách đứng ở vị trí \(5\) sẽ chọn lộ trình ngắn nhất để đi tới địa điểm \(2\)\(5 \rightarrow 3 \rightarrow 1 \rightarrow 2\). Lộ trình này tốn số tiền taxi là \(5 + 2 + 2 = 9\).

Test 2
Input
10 11 3 9
1 10 7
2 10 15
5 2 35
3 7 28
1 9 27
10 9 48
4 10 14
9 8 29
5 8 48
9 6 11
8 7 13
10 1 6
Output
75
4
010 10 1
001 7 8
110 1 9
001 8 9
Note

Trong ví dụ này lộ trình tối ưu nhất sẽ là:

Vị khách thứ hai đi taxi từ vị trí \(10\) đến vị trí \(1\), sau đó vị khách thứ hai và thứ nhất cùng nhau đi taxi đến vị trí cuộc họp (vị trí \(9\)) tốn \(6 + 27 = 33\).

Còn vị khách thứ ba sẽ bắt taxi đi từ \(7 \rightarrow 8 \rightarrow 9\) tốn \(13 + 29 = 42\).

Tổng cộng tốn \(33 + 42 = 75\) chi phí đi taxi. Có thể chứng minh đây là chi phí bé nhất.

3. LQDOJ Cup 2024 - Round #7 - Tô màu

Điểm: 600 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: COLTR.inp Output: COLTR.out

Bạn được giao cho việc là trang trí một cây gồm \(n\) đỉnh được đánh số từ \(1\) đến \(n\) và có gốc là đỉnh \(1\). Ban đầu, đỉnh thứ \(i\) có màu là \(c_{i}\). Bạn được yêu cầu thực hiện \(4\) thao tác sau với cây:

  • \(1\) \(u\) \(v\) \(x\): Đổi màu tất cả các đỉnh trên đường đi đơn từ \(u\) đến \(v\) thành màu \(x\).
  • \(2\) \(u\) \(x\): Đổi màu tất cả các đỉnh trong cây con gốc \(u\) thành màu \(x\).
  • \(3\) \(u\) \(v\): Đếm số màu phân biệt trên đường đi đơn từ \(u\) đến \(v\).
  • \(4\) \(u\): Đếm số màu phân biệt trong cây con gốc \(u\).

Input

  • Dòng đầu chứa hai số nguyên \(n\)\(q\) \((1 \leq n, q \leq 2 \times 10^{5})\) lần lượt số đỉnh và số yêu cầu.
  • \(n - 1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u\)\(v\) \((1 \leq u, v \leq n)\) mô tả một cạnh của cây.
  • Dòng tiếp theo chứa \(n\) số nguyên \(c_{1}, c_{2}, \ldots, c_{n}\) \((1 \leq c_{i} \leq 60)\) mô tả màu ban đầu của các đỉnh.
  • \(q\) dòng tiếp theo, mỗi dòng bắt đầu bằng số nguyên \(k\) \((1 \leq k \leq 4)\) và theo sau là các số nguyên mô tả các yêu cầu \((1 \leq u, v \leq n, 1 \leq x \leq 60)\):
    • Nếu \(k = 1\) thì theo sau là \(3\) số nguyên \(u, v\)\(x\) mô tả thao tác loại \(1\).
    • Nếu \(k = 2\) thì theo sau là \(2\) số nguyên \(u\)\(x\) mô tả thao tác loại \(2\).
    • Nếu \(k = 3\) thì theo sau là \(2\) số nguyên \(u\)\(v\) mô tả thao tác loại \(3\).
    • Nếu \(k = 4\) thì theo sau là số nguyên \(u\) mô tả thao tác loại \(4\).

Output

  • Với mỗi yêu cầu thao tác \(3\) hoặc thao tác \(4\), in ra kết quả trên từng dòng.

Scoring

  • Subtask \(1\) (\(16\%\) số điểm): \(1 \leq n, q \leq 1000\).
  • Subtask \(2\) (\(18\%\) số điểm): \(1 \leq n, q \leq 5 \times 10^{4}\), \(1 \leq c_{i}, x \leq 30\), \(k = 2\) hoặc \(k = 4\).
  • Subtask \(3\) (\(20\%\) số điểm): \(1 \leq n, q \leq 5 \times 10^{4}, 1 \leq c_{i}, x \leq 30\), mỗi đỉnh kề với không quá \(2\) đỉnh khác.
  • Subtask \(4\) (\(22\%\) số điểm): \(1 \leq n, q \leq 5 \times 10^{4}, 1 \leq c_{i}, x \leq 20\).
  • Subtask \(5\) (\(24\%\) số điểm): Không có điều kiên gì thêm.

Example

Test 1
Input
5 6
1 5
5 4
5 2
1 3
4 5 6 4 3
4 4
1 2 4 5
4 5
1 2 3 1
3 2 1
2 5 1
Output
1
1
1
Note

Cây ban đầu:

Cây sau truy vấn thứ 2:

Cây sau truy vấn thứ 4:

Cây sau truy vấn thứ 6:

Test 2
Input
5 4
1 2
1 4
4 5
5 3
3 1 5 2 1
4 1
3 2 3
2 3 6
4 1
Output
4
4
4
Note

Cây ban đầu:

Cây sau truy vấn thứ 3: