ROBOT (TP Hồ Chí Minh 2024)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
ROBOT.INP - Tệp ra:
ROBOT.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Trại hè Phương Nam 2024 - Phương Nam
Phương Nam có N khu vực hành chính, được đánh số từ 1 đến N, được kết nối liên thông bởi N - 1 con đường tạo thành dạng cây trong lý thuyết đồ thị. Mỗi khu vực tương ứng với một đỉnh của cây, mỗi con đường tương ứng với một cạnh của cây. Nhắc lại, cây là một đồ thị vô hướng, liên thông và không có chu trình. Mỗi khu vực người ta gán cho một giá trị biểu thị mức độ phát triển khu vực đó, khu vực thứ i có có giá trị A_i.
Nhằm quy hoạch phát triển các khu vực một cách hiệu quả, người ta đánh giá một cụm S các khu vực liên thông nhau thông qua các con đường nối giữa chúng trong cụm đó bởi một độ hiệu quả. Giá trị độ hiệu quả này được tính bằng hiệu của giá trị lớn nhất trong số các giá trị khu vực thuộc S và giá trị nhỏ nhất trong số các giá trị khu vực thuộc S. Nói cách khác, với một cụm liên thông S, giá trị của S là max_{u∈S} A_u - min_{u∈S} A_u.
Người ta muốn chia toàn bộ N khu vực thành các cụm khu vực riêng biệt, mỗi cụm bao gồm một hoặc nhiều khu vực liên thông nhau bởi các con đường nối các khu vực trong cụm đó và đánh giá độ hiệu quả trên mỗi cụm. Tổng độ hiệu quả của một cách chia như vậy được tính bằng tổng giá trị của các cụm liên thông trong cách chia đó.
Yêu cầu: Hãy tìm cách chia toàn bộ N khu vực thành các cụm có tổng độ hiệu quả lớn nhất.
Input, Output
Input: (SOUTH.INP)
Vào từ file văn bản SOUTH.INP:
- Dòng thứ nhất chứa một số nguyên N (1 \le N \le 3 · 10^5) là số lượng khu vực ở Phương Nam.
- Dòng thứ hai chứa N số nguyên A_1, A_2,..., A_N (1 \le A_i \le 10^9) mô tả độ phát triển của khu vực tương ứng.
- Dòng thứ i trong N - 1 dòng tiếp theo chứa hai số nguyên u_i, v_i (1 \le u_i, v_i \le N) mô tả một con đường nối hai khu vực u_i và v_i. Dữ liệu đảm bảo các con đường này tạo thành một cây.
Các số trên cùng một dòng cách nhau bởi dấu cách.
Output: (SOUTH.OUT)
- Ghi ra file văn bản SOUTH.OUT một số nguyên duy nhất là tổng độ hiệu quả lớn nhất tìm được.
Subtask
- Có 30\% số test ứng với 30\% số điểm của bài thoả mãn: N \le 20.
- 30\% số test khác ứng với 30\% số điểm của bài thoả mãn: N \le 2000, và tất cả các đỉnh có bậc không quá 2.
- 20\% số test khác ứng với 20\% số điểm của bài thoả mãn: Tất cả các đỉnh có bậc không quá 2.
- 20\% số test còn lại ứng với 20\% số điểm của bài: Không có ràng buộc gì thêm.
Giải thích
Trong các hình vẽ minh họa bên trên, mỗi đỉnh tượng trưng cho một khu vực bao gồm hai số, số thứ nhất là chỉ số của khu vực, số thứ hai là giá trị của khu vực đó. Các đường đi được mô tả bằng các cạnh nỗi giữa các đỉnh.
Dãy đẹp (Nam Định 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
DEP.INP - Tệp ra:
DEP.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Số SDIGIT (TP Hồ Chí Minh 2024)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
SDIGIT.INP - Tệp ra:
SDIGIT.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Đếm ước (Hà Tĩnh 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
COUNT.INP - Tệp ra:
COUNT.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Số lớn nhất (Bến Tre 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
DAYSO.INP - Tệp ra:
DAYSO.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Tìm tên (HSG CLQĐ NT 2024)
Học trò của giáo xư X tỏ ra rất kém trong môn hoá học. Để cải thiện tình hình học tập môn này, việc đầu tiên là phải nhớ được những tên khoa học của các nguyên tố và hợp chất.
Với một tên cho bởi xâu kí tự S chỉ gồm các chữ cái thường tiếng Anh. Giáo sư X viết vào sau mỗi nguyên âm ("a", "e", "i", "o", "u", "y") một chữ cái "m" để đc xâu S'. Các sinh viên được cho xâu S' và yêu cầu tìm xâu S.
Yêu cầu: Hãy giúp các bạn sinh viên tìm tên S ban đầu
Input and Output
Input (FINDNAME.INP)
- Một dòng chứa xâu kí tự S' chỉ gồm chữ cái thường (1 \le |S'| \le 10^5).
Output (FINDNAME.OUT)
- Xâu kí tự S tìm được.
Test
Input (FINDNAME.INP)
omxymgemn
Output (FINDNAME.OUT)
oxygen
TLEOJ Contest #14 - Everyone Everywhere Cheating All At Once
Reset não xong chưa? Đọc đề tiếp nè.
Nếu không có hứng thú đọc đề, vui lòng đọc từ đoạn thứ 3 của đề bài.
Nói sơ một chút về các trò chơi. Một trò chơi không thể hay nếu không có một chuỗi những sự kiện liên tiếp giữa các người chơi, liên tục đưa ra các nước đi mà họ cho là hợp lí nhất để tạo cho họ một lợi thế dẫn trước những người chơi khác, từ đó dẫn đến chiến thắng. Những trường hợp đó, chúng ta có thể gọi là một \text{Event Sequence Simulation}, khi mà các hành động của người chơi này có thể ảnh hưởng một phần hoặc toàn bộ, trực tiếp hoặc gián tiếp lên lối chơi của những người khác.
Hai học sinh quyết định thử nghiệm về tình huống này. Tạm gọi hai người này với nickname \text{Alan} và \text{Bob}, vì tôi không muốn expose tên hai người đã thực sự làm điều này. Họ quyết định lấy bộ bài \text{Yugioh} mà họ đã sưu tập từ lâu ra để thử. Sở dĩ họ chọn trò đấu bài này vì tình huống \text{chain} hiệu ứng của lá bài của mình lên lá bài của đối thủ rất thường xuyên xảy ra, với các lá \text{Quick Spells} và \text{Counter Traps}, và đôi khi là từ hiệu ứng quái thú.
Tại một thời điểm trong ván đấu, sau khi một người chơi nào đó đã thực hiện một tác vụ nào đó, hai người chơi đang ở một cây trò chơi, với gốc của cây là tình huống hai người đang ở hiện tại. Cây trò chơi bao gồm n game-states, được đánh số từ 1 đến n, và hai người đang ở game-state \text{#}1, là gốc của cây. Có n - 1 cách để tiếp tục cho tình huống tiếp diễn, phương án thứ i được biểu diễn bởi một cạnh có hướng từ game-state \text{#}u_i đến game-state \text{#}v_i, biểu thị tại game-state \text{#}u_i, phương án thứ i đó sẽ đưa cả hai người đến với game-state \text{#}v_i. Trên cạnh đó được gán một chữ cái, được lấy từ chữ cái đầu từ nickname của họ (\text{A} hoặc \text{B}), cho biết rằng trò chơi chỉ được tiếp tục bằng cách đi qua cạnh đó bởi \text{Alan} (nếu đó là kí tự \text{A}), hoặc \text{Bob} (nếu đó là kí tự \text{B}). Game-state \text{#}i (trong máy tính phân tích) sẽ có một chỉ số P[i], biểu thị rằng:
- Nếu P[i] = 1, nghĩa là \text{Alan} sẽ có lợi thế, nếu tình huống dừng tại game-state \text{#}i.
- Nếu P[i] = -1, nghĩa là \text{Bob} sẽ có lợi thế, nếu tình huống dừng tại game-state \text{#}i.
- Nếu P[i] = 0, nghĩa là trò chơi vẫn sẽ ở thế cân bằng, nếu tình huống dừng tại game-state \text{#}i.
Dù là một trò chơi tình nghĩa anh em và mang tính chất nghiên cứu, nhưng cả hai không biết rằng, đối thủ của mình đã kịp và lén lút gian lận, sử dụng máy tính để phân tích ra cây trò chơi mà đã được phân tích ở trên. Họ quyết định từ đầu, rằng ở một game-state, mỗi người sẽ có hai lựa chọn là \text{stop} và \text{continue}. Người nào không thực hiện action gần nhất trước khi đến game-state này sẽ được quyết định trước. Tình huống sẽ được xử lí như sau:
- Nếu cả hai người chọn \text{stop}, tình huống sẽ dừng tại game-state đó.
- Nếu có đúng một người chọn \text{continue}, người chọn \text{continue} sẽ được chọn một hướng đi có ghi chữ cái đầu tên họ và tiếp tục diễn biến của tình huống đó.
- Nếu cả hai người chọn \text{continue}, để tránh xô xát không cần thiết, hai người quyết định rằng người được ưu tiên chọn ở lượt này sẽ được thực hiện hành động tiếp theo.
Lưu ý: Chỉ có người có thể thực hiện hành động để tiếp tục tình huống mới được chọn \text{continue}. Nếu họ không thể tự mình tiếp tục, lựa chọn của họ sẽ mặc định là \text{stop}.
Vì cả hai người đều gian lận, nên họ sẽ dựa trên thông tin đó để tạo được lợi thế lớn nhất cho bản thân họ.
Hãy cho biết trong một khoảnh khắc nào đó, hai người đang ở game-state \text{#}i, thì lợi thế sẽ thuộc về ai? Biết rằng câu hỏi này yêu cầu bạn sẽ trả lời dựa trên các parallel universes, mà ở mỗi universes như thế, hai người chơi thay vì xuất phát từ game-state \text{#}1, thì ở các parallel universes khác, hai người đó phải đến game-state \text{#}i mới bắt đầu gian lận. Ngoài điều đó ra, cây trò chơi phân tích được, và các luật lệ ở các parallel universes đang xét đến này đều giống nhau.
\text{Input} EECAAO.inp
- Dòng một gồm một số n (1 \le n \le 2 * 10^5), thể hiện số lượng game-states.
- Dòng thứ hai, có n số biểu thị mảng P, với số thứ i biểu thị giá trị của P[i] (-1 \le P[i] \le 1).
- n dòng tiếp theo, dữ liệu được biểu diễn như sau:
- Dòng đầu tiên, sẽ có hai số 0, 1, và một chữ cái l_1 (l_1 \in \{A; B\}). Điều này để tránh softlock ngay ở game-state \text{#}1, khi trong cây trò chơi được miêu tả trên đề không cho biết rằng ai là người đã thực hiện hành động gần nhất trước khi ở game-state gốc.
- n - 1 dòng còn lại, cây trò chơi sẽ được biểu diễn như bình thường. Có tổng cộng n - 1 bộ dữ liệu, bộ dữ liệu thứ i (2 \le i \le n) có dạng hai số u_i và v_i, và một kí tự l_i (1 \le u_i \ne v_i \le n; l_i \in \{A; B\}), thể hiện rằng có một cạnh có hướng nối giữa game-state \text{#}u_i và game-state \text{#}v_i, và chỉ có người có chữ cái đầu trong nickname trùng với l_i mới đưa trò chơi đi theo cạnh đó. Trong một số tình huống, ta có thể nói l_{u_i \rightarrow v_i} = l_i.
- Dữ liệu của cây trò chơi được biểu diễn theo cách sao cho từ game-state \text{#}1, tồn tại một cách điều khiển không-thời gian tới tất cả n - 1 game-states còn lại.
\text{Output} EECAAO.out
- Gồm n số trên một dòng. Số thứ i biểu diễn cán cân lợi thế giữa hai người chơi Alan và Bob trong tình huống, tại một parallel universe mà hai người sẽ bắt đầu gian lận tại game-state \text{#}i, giống như cách mà P[i] được định nghĩa (trên đề).
\text{Scoring}
- Subtask \text{#}1 (10\% số điểm): u_i = 1.
- Subtask \text{#}2 (20\% số điểm): l_i = \text{A} hoặc l_i = \text{B}.
- Subtask \text{#}3 (30\% số điểm): Đồ thị được cho có dạng một đường thẳng.
- Subtask \text{#}4 (10\% số điểm): Game-state gốc sẽ nối đến hai game-state khác, trong khi các game-state \text{#}u (u > 1) chỉ nối đến với nhiều nhất một game-state khác.
- Subtask \text{#}5 (10\% số điểm): Gọi c(u) = [v_1; v_2; ...; v_k] là tập hợp chỉ số của các game-state mà game-state \text{#}u có một cạnh chỉ tới. Dữ liệu thỏa mãn (nếu game-state \text{#}u có cạnh được nối tới các game-state khác) l_{u \rightarrow v_1} = l_{u \rightarrow v_2} = ... = l_{u \rightarrow v_k}.
- Subtask \text{#}6 (20\% số điểm): Không có giới hạn gì thêm.
\text{Examples}
Ở trong các test này, ta sẽ giả định giá trị E[i] là đáp án thứ i cần được in ra \text{Output}.
\text{Test #}1
\text{Input}
3
0 -1 -1
0 1 A
1 2 B
2 3 B
\text{Output}
-1 -1 -1
\text{Explanations}

- Đầu tiên, cần nhận thấy rằng mọi l_i = B (i > 1), nên ở mọi game-state \text{#}1, \text{#}2, \text{#}3 thì \text{Alan} chỉ có thể chọn \text{stop}, do \text{Alan} không thể tự mình tiếp tục cho tình huống diễn biến.
- Xét game-state \text{#}3: Nếu tình huống dừng lại tại game-state này, \text{Bob} chắc chắn có được lợi thế do P[3] = -1. Suy ra, E[3] = -1.
- Xét game-state \text{#}2: Dù \text{Bob} chọn \text{stop} hay \text{continue} thì kết quả Bob nhận được luôn có lợi cho Bob (P[2] = -1 và E[3] = -1), \text{Bob} chắc chắn có được lợi thế. Suy ra E[2] = -1.
- Xét game-state \text{#}1: Nếu \text{Bob} chọn \text{stop}, vì \text{Alan} buộc phải chọn \text{stop} nên tình huống sẽ kết thúc với kết quả hai người huề, vì P[1] = 0. Trong khi đó, nếu \text{Bob} chọn \text{continue}, cả hai người sẽ đến với game-state \text{#}2 và E[2] = -1, \text{Bob} có được lợi thế. Vì \text{Bob} chơi tối ưu nên \text{Bob} sẽ chọn \text{continue} ở game-state này và chắc chắn có được lợi thế. Suy ra E[1] = -1.
Vì ở cả ba game-states, nếu \text{Bob} chơi tối ưu thì sẽ luôn có được lợi thế, nên cả ba số cần in ra là -1.
\text{Test #}2
\text{Input}
4
0 1 -1 1
0 1 A
1 2 B
1 3 A
1 4 B
\text{Output}
0 1 -1 1
\text{Explanations}

- Xét đồng thời cả ba game-state \text{#}2, \text{#}3, \text{#}4: Nếu tình huống dừng lại tại các game-state này, \text{Bob} chắc chắn có được lợi thế ở game-state \text{#}3 (P[3] = -1), và \text{Alan} có lợi thế ở game-state \text{#}2 và \text{#}4 (P[2] = P[4] = 1). Suy ra E[3] = -1, E[2] = E[4] = 1.
- Xét game-state \text{#}1: Ở game-state này, \text{Bob} được ưu tiên chọn trước. Nhận thấy rằng nếu chọn \text{continue}, \text{Alan} chọn gì cũng đem lại lợi thế cho anh ta (vì ở hai game-state \text{#}2 và \text{#}4, hai game-state mà \text{Bob} sẽ đưa trò chơi tới, E[2] = E[4] = 1, không quan trọng \text{Alan} chọn gì do \text{Bob} có quyền ưu tiên), nên \text{Bob} quyết định chọn \text{stop}, bởi với quyết định này, \text{Bob} chắc chắn không thiệt, do hai trường hợp có thể xảy ra là: hoặc \text{Alan} chọn \text{continue} và đem lại lợi thế cho \text{Bob} (do ở game-state \text{#}3 mà \text{Alan} có thể đưa trò chơi tới, E[3] = -1) hoặc \text{Alan} chọn \text{stop} và cả hai huề (P[1] = 0). Về phần \text{Alan}, vì cũng đang chọn phương án tối ưu nên \text{Alan} cũng chọn \text{stop}, và cả hai huề ở trường hợp này. Suy ra E[1] = 0.
\text{Test #}3
\text{Input}
6
0 -1 1 1 -1 -1
0 1 A
1 2 A
1 3 B
2 4 B
2 5 B
3 6 A
\text{Output}
0 -1 1 1 -1 -1
\text{Explanations}

- Xét game-state \text{#}4, \text{#}5, \text{#}6: \text{Alan} sẽ có lợi thế ở game-state \text{#}4, còn \text{Bob} sẽ có lợi thế ở game-state \text{#}5 và \text{#}6. Suy ra, E[4] = 1, E[5] = E[6] = -1.
- Xét game-state \text{#}3: Ở đây, \text{Bob} chỉ được phép chọn \text{stop} và \text{Alan} được quyền ưu tiên. \text{Alan} sẽ chọn \text{stop} để đảm bảo lợi thế của anh ta (P[3] = 1), vì nếu chọn \text{continue} thì tình huống sẽ đến với game-state \text{#}6, cũng coi như là đưa lợi thế cho \text{Bob} (do E[6] = -1). Suy ra, P[3] = 1.
- Xét game-state \text{#}2: \text{Bob} được quyền ưu tiên, và \text{Alan} buộc phải chọn \text{stop}. Trong tình huống này, dù \text{Bob} có chọn gì thì kết quả đều thuận lợi cho \text{Bob}, nếu \text{Bob} chơi tối ưu (do \text{P[2] = -1} và nếu Bob thích chọn \text{continue}, chỉ cần đưa trò chươi đến với game-state \text{#}5 và Bob sẽ có lợi thế do E[5] = -1). Suy ra, P[2] = -1.
- Xét game-state \text{#}1: \text{Bob} được quyền ưu tiên. Tuy nhiên, nếu \text{Bob} chọn \text{continue} thì cách duy nhất để \text{Bob} tiếp tục tình huống là đưa tới game-state \text{#}3 và E[3] = 1, vì thế nên lựa chọn tốt nhất cho \text{Bob} là \text{stop}, vì \text{Bob} sẽ chắc chắn không thiệt với lựa chọn này (do nếu \text{Alan} chọn \text{continue}, \text{Bob} sẽ thắng tại game-state \text{#}2 và E[2] = -1, còn nếu chọn \text{stop} thì sẽ hòa do P[1] = 0). Tương tự, \text{Alan} biết rằng chọn \text{continue} cũng dẫn đến việc tình huống sẽ tiếp diễn tại game-state \text{#}2 mà E[2]=-1, nên \text{Alan} cũng sẽ chọn \text{stop}. Vậy là cả hai người quyết định \text{stop} và huề. Suy ra P[1] = 0.
Vượt chướng ngại vật (Khánh Hòa 2023)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
ATHORUA.INP - Tệp ra:
ATHORUA.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Đường tròn (TS10 QT 2023)
Các số nguyên dương từ 1 đến n được ghi trên một đường tròn theo chiều kim đồn gồ. Các cung bằng nhau được chia bởi các số liên tiếp từ số đầu tiên đến số cuối cùng. Bắt đầu từ vị trí số 1, di chuyển trên đường tròn theo chiều kim đồng hồ qua d cung và dừng lại tại vị trí đã ghi số. Vị trí bắt đầu cũng được xem là một vị trí đứng. Mỗi lần di chuyển như vậy ta gọi là 1 bước nhảy. Chúng ta thực hiện k bước nhảy, bước nhảy tiếp theo bắt đầu từ vị trí dừng của lượt nhảy trước đó.
Yêu cầu: Hãy tính tổng các số tại mỗi vị trí đứng trong quá trình thực hiện k bước nhảy
Input, Output và Subtasks
Input: (CAU2.INP)
- Gồm 1 dòng ghi 3 số nguyên dương n,d,k (1\le n,d,k\le 1000), các số ghi cách nhau một dấu cách
Output: (CAU2.OUT)
- Duy nhất một số nguyên dương là kết quả tìm được theo yêu cầu trên
Sample
Input (CAU2.INP)
5 3 4
Output (CAU2.OUT)
15
Note
Bước nhảy thứ nhất từ vị trí 1 đến vị trí 4, bước nhảy thứ hai từ vị trí 4 đến 2, bước nhảy thứ ba từ vị trí 2 đến 5, bước nhảy thứ tư từ vị trí 5 đến 3. Tổng thu được: 1+4+2+5+3=15
TLEOJ Contest #14 - Simulations
Một chiến dịch lớn giữa các sinh viên ưu tú nhất khoa Công nghệ thông tin của một trường nào đó đã được khởi động, với mục tiêu là dựng lên một chương trình giả tưởng, biểu diễn một lượng rất lớn các biến cố có thể xảy ra từ các dữ kiện ban đầu, nhờ vào công nghệ \text{AI}. Tuy nhiên, việc dựng mô hình này sẽ rất, rất, rất, rất bất tiện. Thế nên, các bạn trẻ của chúng ta đã dựng nên một mô hình để mô phỏng lại quá trình dựng nên cây sự kiện.
Ban đầu, khi bắt đầu thiết lập, cây giả tưởng này chỉ có một nút duy nhất và một hàng nút duy nhất. Nút duy nhất đó được đánh số là nút 1, ở hàng duy nhất được đánh số là 1.
Có một thao tác dựng cây có thể được sử dụng. Thao tác này yêu cầu hai số nguyên không âm a, b cho trước. Hai số này đảm bảo a + b > 1. Thao tác dựng cây như sau:
- Giả sử cây có tổng cộng r hàng nút trước khi gọi thao tác này. Gọi L=[L_1; L_2; L_3; ...; L_k] là số chỉ của các đỉnh ở hàng r. Hai số a và b này sẽ dựng các nút mới như sau:
- Với nút L_i (1 \le i \le k), sinh ra tổng cộng a + b nút mới làm con của nó. Giả sử cây hiện tại, lúc xét nút L_i và trước khi thêm đỉnh, có tổng cộng N nút. Các nút này sẽ lần lượt được đánh số từ N + 1 đến N + (a + b).
- Cũng tại bước sinh nút mới tại nút L_i đang xét, các nút đã được đánh số N + x, với 1 \le x \le a, cạnh nối giữa nút L_i và nút N + x được đánh dấu là cạnh \text{"A"} + \text{str}(x) của nút L_i. Tiếp theo, các nút đã được đánh số N + a + y, với 1 \le y \le b, có cạnh nối giữa nút L_i và nút N + y được đánh dấu là cạnh \text{"B"} + \text{str}(y) của nút L_i.
Ví dụ, nếu gọi hai bước sinh nút mới lần lượt với hai bộ số (a; b) là (3; 2) và (1; 1), ta có được cây sau:

Đôi khi, máy tính có thể gặp trục trắc, nên đôi khi thay vì sinh nút mới, máy tính sẽ kiểm tra bằng cách kiểm tra lại nút có chỉ số là X, bằng cách sử dụng các cạnh nào, để đi từ đỉnh của cây – nút 1 – đến với nút có chỉ số là X, để đảm bảo rằng tiến trình sinh cây được chính xác. Cụ thể, để đi tới nút số 10, trong ví dụ bên trên, ta sẽ từ nút 1, sử dụng cạnh \text{"A2"} của nút 1 để đi xuống nút 3; và từ nút 3, ta sẽ sử dụng cạnh \text{"B1"} của nút 3 để đi xuống nút 10. Chúng ta cần cho máy biết, các cạnh được sử dụng lần lượt là cạnh \text{"A2"} và cạnh \text{"B1"} (máy tính sẽ tự động biết cần dụng cạnh \text{"Ax"} , hoặc cạnh \text{"By"} của nút nào, nên việc thêm vào sử dụng cạnh đó của nút nào, trong trường hợp này, là không cần thiết).
Công trình được thiết lập cho một mục tiêu lớn hơn, nhưng trước hết thì đây là phiên bản thử nghiệm của công trình “Vẽ cây mô phỏng” lớn nhất từng được thực hiện. Hãy cùng thực hiện công tác thử nghiệm mô hình này nào.
Vì là mô hình thử nghiệm, nên trong suốt quá trình xử lí, tổng số nút mà máy tính cần phải xử lí sẽ không vượt quá 10^{18} nút.
\text{Input} SIMULS.inp
- Dòng một gồm một số q, thể hiện số lượng truy vấn (2 \le q \le 10^5);
- q dòng sau, mỗi dòng thể hiện một trong hai loại sau:
- 1 a b: Thể hiện truy vấn thêm nút trên cây. Đọc lại đề để biết thêm chi tiết (nếu bạn cố tình đọc lướt đến phần \text{Input} này để full nhanh đề).
- 2 X: Thể hiện truy vấn kiểm tra của máy tính. Nếu không biết, hãy đọc lại đề để biết thêm chi tiết (nếu bạn cố tình đọc lướt đến phần \text{Input} này để full nhanh đề). Biết rằng nếu gọi N là tổng số nút trên cây đã được sinh trước truy vấn này, \text{Input} được đảm bảo rằng X ≤ N.
- \text{Input} được đảm bảo rằng trong suốt quá trình xử lí, tổng số nút trên cây sẽ không vượt quá 10^{18} nút.
\text{Output} SIMULS.out
- Với truy vấn loại 2 X, in ra đáp án theo yêu cầu của đề theo dạng như sau:
- Ở hàng đầu tiên, in ra một giá trị p, thể hiện số cạnh cần sử dụng để đi từ nút 1 đến nút X.
- Ở hàng thứ hai, in ra p giá trị, thể hiện các cạnh cần sử dụng theo thứ tự để đi từ nút 1 đến nút X. Đọc lại đề nếu bạn vẫn ko biết cần in cái gì (còn in kiểu gì hãy đọc \text{Example Tests}). Nếu p = 0, không in ra gì cả.
\text{Scoring}
- Subtask \text{#}1 (20\% số điểm): Có đúng một truy vấn cập nhật cây, có \text{min}(a, b) = 0.
- Subtask \text{#}2 (20\% số điểm): N \le 2 * 10^5.
- Subtask \text{#}3 (20\% số điểm): q \le 2 * 10^4, trong đó các truy vấn cập nhật cây có a + b = 2.
- Subtask \text{#}4 (15\% số điểm): q \le 2 * 10^4.
- Subtask \text{#}5 (15\% số điểm): N \le 10^9.
- Subtask \text{#}6 (10\% số điểm): Không có giới hạn gì thêm.
\text{Examples}
\text{Test #}1
\text{Input}
4
1 1 1
1 1 1
2 2
2 3
\text{Output}
1
A1
1
B1
\text{Test #}2
\text{Input}
4
1 1 1
1 1 1
2 1
2 4
\text{Output}
0
2
A1 A1
\text{Test #}3
\text{Input}
9
1 1 1
1 1 1
2 1
2 2
2 3
2 4
2 5
2 6
2 7
\text{Output}
0
1
A1
1
B1
2
A1 A1
2
A1 B1
2
B1 A1
2
B1 B1
\text{Explanations}

Đây là cây của chúng ta sau khi sử dụng hai lệnh sinh nút 1 1 1 (với a = b = 1)
- Đối với nút 1, ta không cần di chuyển vì ta đã ở sẵn ở nút 1 ngay từ đầu truy vấn kiểm tra.
- Đối với nút 2, ta cần di chuyển trên cạnh \text{"A1"} của nút 1 để đến với nút 2.
- Đối với nút 3, ta cần di chuyển trên cạnh \text{"B1"} của nút 1 để đến với nút 3.
- Đối với nút 4, từ nút 1 ta cần di chuyển qua cạnh \text{"A1"} của nút 1 để đến với nút 2, và di chuyển qua cạnh \text{"A1"} của nút 2 để đến với nút 4.
- Đối với nút 5, từ nút 1 ta cần di chuyển qua cạnh \text{"A1"} của nút 1 để đến với nút 2, và di chuyển qua cạnh \text{"B1"} của nút 2 để đến với nút 5.
- Đối với nút 6, từ nút 1 ta cần di chuyển qua cạnh \text{"B1"} của nút 1 để đến với nút 3, và di chuyển qua cạnh \text{"A1"} của nút 3 để đến với nút 6.
- Đối với nút 7, từ nút 1 ta cần di chuyển qua cạnh \text{"B1"} của nút 1 để đến với nút 3, và di chuyển qua cạnh \text{"B1"} của nút 3 để đến với nút 7.
Mở cửa (Bình Phước 2023)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
Bàn phím - Tệp ra:
Màn hình - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Tổng dãy số liên tiếp (Bà Rịa Vũng Tàu 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
BAI3.INP - Tệp ra:
BAI3.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
TLE-oj Cup Round 9 - Dãy bằng nhau
Cho dãy số nguyên dương a_1, a_2, ..., a_n. Với mỗi thao tác bạn có thể tăng hoặc giảm một phần tử đi 1 đơn vị. Đếm số thao tác ít nhất cần thiết để a_1 = a_2 = ... = a_n.
Input, Output và Subtasks
Input: (EQUALARR.inp)
- Dòng đầu gồm số nguyên dương duy nhất n (n \le 10^6).
- Dòng tiếp theo gồm n số nguyên dương a_1, a_2, ..., a_n (a_i \le 10^9).
Output: (EQUALARR.out)
- In ra một số nguyên duy nhất là số thao tác tối thiểu để cả dãy bằng nhau
Subtasks
- Bài này không có subtask.
Sample
Input (EQUALARR.inp)
4
1 2 4 5
Output (EQUALARR.out)
6
Note
- Cần 2 thao tác để biến đổi các số 1 và 5 thành 3.
- Cần 1 thao tác để biến đổi các số 2 và 4 thành 3.
- Vậy tổng cộng cần 6 thao tác và đó là số thao tác ít nhất cần dùng.
TLEoj Contest #07 - Knapsack đơn giản
Chắc hẳn các bạn đã biết về bài toán cái túi, hay knapsack. Bài toán này là một phiên bản khác của bài toán cái túi.
Có n món đồ, món đồ thứ i có cân nặng a_i. An chọn một số món đồ sao cho tổng cân nặng của chúng đúng bằng m và muốn biết rằng có bao nhiêu cách chọn đồ như vậy. Một món đồ có thể chọn 0 lần, 1 lần hoặc nhiều hơn 1 lần, hai cách chọn được gọi là khác nhau nếu có một món đồ chọn nhiều hoặc ít hơn cách chọn kia. Hãy giúp bạn An đếm nhé
Input, Output và Subtasks
Input: (standard input)
- Dòng đầu gồm hai số nguyên dương n và m (1\leq n\leq 10).
- Dòng tiếp theo gồm n số nguyên dương a_1,a_2,...,a_n (1\leq a_i\leq 20).
Output: (standard output)
- In ra một số là số cách chọn mod 10^9+7.
Subtasks
- Subtask 1 (40\%): m\leq 2000
- Subtask 2 (20\%): n=2, m\leq 10^{18}
- Subtask 3 (40\%): m\leq 10^{18}
Sample
Input (standard input)
3 4
1 2 3
Output (standard output)
4
Cặp số tương đồng (Lào Cai 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
CAU3.INP - Tệp ra:
CAU3.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Tổng chẵn (Hà Tĩnh 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
ESUM.INP - Tệp ra:
ESUM.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Thang nhiệt độ (Quảng Ninh 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
TEMP.INP - Tệp ra:
TEMP.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
ROBOT (Quảng Bình 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
ROBOT.INP - Tệp ra:
ROBOT.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
