| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | LQDOJ Cup 2025 - Round #2 - Bất phân thắng bại | 100 (p) | 1.0s | 512M |
| 2 | LQDOJ Cup 2025 - Round #2 - Ngôi sao hi vọng | 100 (p) | 3.0s | 512M |
| 3 | LQDOJ Cup 2025 - Round #2 - Đếm cặp XOR | 100 (p) | 3.5s | 512M |
GEN và T1 là đôi bạn thân không đội trời chung. Trong trận chung kết của chung kết thế giới năm nay, lẽ ra T1 mạnh hơn GEN rất nhiều và dễ dàng dành chiến thắng. Nhưng vì T1 nhường quá nhiều, khiến kèo đấu trở nên vô cùng căng thẳng và bất phân thắng bại. Vì vậy, ban tổ chức quyết định mời hai đội chơi trò chơi bốc sỏi để tìm ra nhà vô địch.
Ban tổ chức đặt lên bàn \(n\) túi sỏi, các túi được đánh số từ \(1\) đến \(n\). Bên trong túi thứ \(i\) (\(1\le i\le n\)) có \(r_i\) viên sỏi đỏ và \(y_i\) viên sỏi vàng. Ban tổ chức công bố luật bốc sỏi như sau: với túi thứ \(i\), đội chơi có \(4\) lựa chọn bốc sỏi:
Ban tổ chức đưa ra \(m\) câu đố. Các câu đố được đánh số từ \(1\) tới \(m\). Trong câu đố thứ \(i\), ban tổ chức cho hai số \(t_i\) và \(g_i\) rồi yêu cầu hai đội thử tìm ra một phương pháp lấy sỏi tuân thủ các luật nêu trên, sao cho tổng số viên sỏi đỏ lấy được đúng bằng \(t_i\) và tổng số viên sỏi vàng lấy được đúng bằng \(g_i\).
Trước khi cho các đội suy nghĩ, ban tổ chức công bố cách thức tính điểm. Ban tổ chức có một dãy số \(v_1, v_2, \ldots, v_n\). Ban tổ chức nói rằng, với mọi cặp chỉ số \(a\) và \(b\) thỏa mãn \(1 \leq a \leq b \leq n\), nếu đội chơi tìm ra cách lấy sỏi hợp lệ cho tất cả các câu đố từ \(a\) đến \(b\), đội đó được coi là chinh phục được chuỗi sức mạnh \([a; b]\) và sẽ nhận về số điểm là \(v_a \cdot v_{a + 1} \cdot \ldots \cdot v_{b - 1} \cdot v_b\). Tổng điểm của một đội chơi được tính bằng tổng số điểm nhận về của tất cả các chuỗi sức mạnh mà đội đó chinh phục được.
Lưu ý rằng, các câu đố chỉ là thử tìm một phương án lấy sỏi, chứ không có viên sỏi nào thực sự được lấy ra từ các túi của ban tổ chức. Nói cách khác, \(m\) câu hỏi này là hoàn toàn độc lập, và trong mỗi câu hỏi ta đều có \(n\) túi sỏi với số viên sỏi đỏ và vàng trong túi thứ \(i\) lần lượt là \(r_i\) và \(y_i\).
Là một tê-con chân chính, GSPVHCUTE muốn cổ vũ đtty bằng cách giúp T1 kiếm được nhiều điểm nhất có thể. Các bạn hãy xác định số điểm lớn nhất T1 có thể đạt được nhé.
Gọi \(S\) là số điểm lớn nhất mà T1 có thể đạt được. In ra một số nguyên không âm duy nhất là phần dư của \(S\) khi chia cho \(p\).
4 7 2271997
2 5 1 8
7 6 3 5
9 6 1 10 16 2 5
9 6 1 10 16 2 5
2 2 7 1 9 9 7
34
Trong ví dụ trên, ban tổ chức có \(m = 7\) câu hỏi, trong đó:
Khi đó, các chuỗi sức mạnh T1 chinh phục được là:
Tổng số điểm đạt được là \(2 + 4 + 2 + 1 + 9 + 9 + 7 = 34\).
Cuộc thi Chung kết năm của chương trình Đường lên đỉnh Olympia năm \(2035\) đã diễn ra vô cùng kịch tính và hấp dẫn. Các bạn thí sinh lọt vào vòng chung kết đều là những bạn giỏi nhất trong số những bạn giỏi, đã giành được những điểm số vô cùng ấn tượng tại các vòng thi. Tại câu hỏi cuối cùng ở phần thi Về đích, để có cơ hội giành được ngôi vị Quán quân, An đã có một lựa chọn mạo hiểm là đặt ngôi sao hi vọng ở câu hỏi số \(3\) với trị giá \(30\) điểm. Nếu trả lời đúng ở câu này, An sẽ được cộng thêm \(60\) điểm, vừa đủ điểm để vượt qua bạn Bình --- thí sinh đang có số điểm cao nhất và dẫn trước An tận \(55\) điểm. Nếu thành công, An sẽ giành chiến thắng nghẹt thở chỉ với \(5\) điểm cách biệt so với Bình.
Điều đáng nói ở đây, ngoài diễn biến rất gây cấn của cuộc thi với sự cạnh tranh khốc liệt của các thí sinh, là về nội dung và độ khó của câu hỏi mà An nhận được. Đã có nhiều cuộc tranh luận sôi nổi trên diễn đàn LQDOJ --- CLB học sinh chuyên Tin học tại các trường THPT chuyên ở Bà Rịa -- Vũng Tàu, Bình Định, Đà Nẵng, Điện Biên, Khánh Hòa, Ninh Thuận và Quảng Trị. Cộng đồng lập trình thi đấu cho rằng phiên bản tổng quát của câu hỏi trong chương trình có độ khó ngang với Bài 3 của đề thi chọn Học sinh giỏi Quốc gia môn Tin học (VOI). Vậy nội dung câu hỏi như thế nào?
Đề bài như sau:
Cho một mê cung hình chữ nhật được chia làm \(m\) hàng và \(n\) cột. Các hàng của mê cung được đánh số từ \(1\) tới \(m\) theo thứ tự từ dưới lên trên, và các cột được đánh số từ \(1\) tới \(n\) theo thứ tự từ trái sang phải. Ô ở hàng \(i\) và cột \(j\) được ký hiệu là \((i, j)\). Bạn xuất phát ở ô \((1, 1)\) và cần đi tới ô \((m, n)\).
Trong một giây, từ ô \((x,y)\), bạn có thể di chuyển sang một trong bốn ô kề cạnh (là các ô \((x+1, y)\), \((x, y+1)\), \((x-1, y)\) và \((x, y-1)\), nếu như ô đó nằm trong hình chữ nhật).
Tại mỗi thời điểm, mê cung thuộc một trong hai trạng thái là UD hoặc LR. Tùy vào trạng thái của mê cung, bạn có thể di chuyển theo các hướng khác nhau:
UD cho phép bạn di chuyển lên trên một ô hoặc xuống dưới một ô (từ \((x,y)\) sang \((x+1,y)\) hoặc \((x-1,y)\)).LR cho phép bạn di chuyển sang trái một ô hoặc sang phải một ô (từ \((x,y)\) sang \((x,y-1)\) hoặc \((x,y+1)\)).Ban đầu, trạng thái của mê cung là UD. Trong bảng hình chữ nhật có \(p\) ô chứa công tắc chuyển đổi trạng thái. Khi đứng tại một trong các ô này, bạn có thể dành ra một giây để nhấn công tắc. Lúc này, trạng thái của mê cung sẽ thay đổi: từ UD sang LR hoặc ngược lại.
Ngoài ra, trong mê cung còn có \(q\) khu vực cấm có dạng hình chữ nhật. Tại mọi thời điểm, bạn không được phép di chuyển vào bất kỳ ô nào trong các khu vực này.
Yêu cầu: Cho trước kích thước của mê cung \(m \times n\), số ô chứa công tắc \(p\), số lượng khu vực cấm \(q\), vị trí của các ô chứa công tắc và phạm vi của mỗi khu vực cấm. Hãy cho biết thời gian ngắn nhất để đi từ ô \((1,1)\) đến ô \((m,n)\) hoặc cho biết không tồn tại cách nào để làm việc này.
Dòng đầu tiên chứa một số nguyên \(\tau\) là số bộ dữ liệu. Tiếp theo là các bộ dữ liệu, mỗi bộ được mô tả theo khuôn dạng sau:
Gọi \(\Sigma_p\) là tổng giá trị của \(p\) trong các bộ dữ liệu của một test. Tương tự, ta gọi \(\Sigma_q, \Sigma_m, \Sigma_n\) lần lượt là tổng \(q\), tổng \(m\) và tổng \(n\) trong các bộ dữ liệu của bộ test. Dữ liệu đảm bảo \(\Sigma_p, \Sigma_q \le 5 \cdot 10^5\).
Với mỗi bộ dữ liệu, in ra trên một dòng một số nguyên là số giây tối thiểu để đi từ ô \((1,1)\) tới ô \((m,n)\) hoặc \(-1\) nếu không tồn tại cách đi.
2
6 6 9 3
2 6
2 4
6 4
2 2
1 4
6 1
2 1
1 2
1 6
6 5 6 5
1 6 1 6
2 3 3 3
4 4 6 2
2 1
4 1
4 2
1 2
1 4
2 4
2 3 4 3
2 3 2 4
18
-1
Hai hình vẽ dưới đây lần lượt mô tả hai bộ dữ liệu trong ví dụ ở trên. Các ô màu đỏ là những ô thuộc khu vực cấm. Các ô có biểu tượng màu xanh là những ô chứa công tắc.
Trong bộ dữ liệu thứ nhất:
Phương án di chuyển tối ưu được thể hiện bởi đường màu đen. Trong phương án này, ta cần ấn công tắc \(6\) lần ở các ô \((2, 1)\), \((2, 2)\), \((1, 2)\), \((1, 4)\), \((2, 4)\) và \((2, 6)\). Với số bước di chuyển là \(12\), tổng thời gian cần là \(18\) giây.
Một phương án hợp lệ nhưng không tối ưu được thể hiện bởi đường màu hồng. Phương án này cần \(22\) giây, với thời gian di chuyển là \(18\) và \(4\) lần ấn công tắc ở các ô \((6, 1)\), \((6, 4)\), \((2, 4)\) và \((2, 6)\).
Trong bộ dữ liệu thứ hai: Không tồn tại phương án di chuyển tới ô \((m,n)\).
Cho hai dãy số nguyên không âm \(l_1, l_2, \ldots l_n\) và \(r_1, r_2, \ldots, r_n\). Bạn cần xử lý \(q\) truy vấn thuộc một trong ba loại sau:
L u v c: Gán mọi phần tử \(l_u, l_{u + 1}, \ldots, l_v\) bằng giá trị \(c\).R u v c: Gán mọi phần tử \(r_u, r_{u + 1}, \ldots, r_v\) bằng giá trị \(c\).Q u v: Bạn cần giải bài toán đếm sau:Dữ liệu đảm bảo, trong mọi thời điểm, \(l_i \leq r_i\) với mọi \(1 \leq i \leq n\). Hãy xử lý các truy vấn trên.
Nhắc lại, phép toán \(\oplus\) (xor) đối với bit được định nghĩa như sau:
Phép toán \(\oplus\) đối với các số có nhiều hơn một bit được thực hiện theo từng bit. Ví dụ:
L u v cR u v cQ u vVới mỗi truy vấn loại \(3\), in ra trên một dòng hai số nguyên lần lượt là phần dư của \(c_0\) và \(c_1\) khi chia cho \(10^9 + 22071997\).
3 3
1 2
3 4
5 6
Q 1 3
R 1 2 4
Q 1 3
4 8
8 12
Ban đầu, ta có:
1. Xử lý truy vấn Q 1 3 lần thứ nhất:
Ta cần xét các cặp chỉ số \((i, j)\) thỏa mãn \(1 \leq i < j \leq 3\). Các cặp đó là \((1, 2), (1, 3), (2, 3)\).
Với cặp \((i, j) = (1, 2)\): \(x\) có thể là \(1, 2\). \(y\) có thể là \(3, 4\).
Kết quả: 2 chẵn, 2 lẻ.
Với cặp \((i, j) = (1, 3)\): \(x \in \{1, 2\}\), \(y \in \{5, 6\}\). Đếm tương tự, ta có: 0 chẵn, 4 lẻ.
2 chẵn, 2 lẻ.Tổng kết cho truy vấn \texttt{Q 1 3} đầu tiên:
Kết quả in ra: 4 8
2. Xử lý truy vấn R 1 2 4:
Truy vấn này cập nhật các giá trị \(R_i\) tại các vị trí \(i \in [1, 2]\) thành \(4\). Hai dãy số lúc này trở thành:
3. Xử lý truy vấn Q 1 3 lần thứ hai:
Ta lại xét các cặp chỉ số \((1, 2), (1, 3), (2, 3)\) với các khoảng giá trị mới.
4 chẵn, 4 lẻ.2 chẵn, 6 lẻ.2 chẵn, 2 lẻ.Tổng kết cho truy vấn Q 1 3 thứ hai:
Kết quả in ra: 8 12