| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Trò chơi đoán số (OLP MT&TN lần 7) | 100 (p) | 3.0s | 256M |
| 2 | Hệ thống thi (OLP MT&TN lần 7) | 100 (p) | 1.0s | 1G |
| 3 | Vòng xoay (OLP MT&TN lần 7) | 100 (p) | 0.5s | 1G |
| 4 | Đường đi thay thế (OLP MT&TN lần 7) | 100 (p) | 3.0s | 512M |
Bạn đang tham gia trò chơi “đoán số hay, rinh lộc ngay” với cơ hội nhận về giải thưởng vô cùng hấp dẫn. Để trở thành người thắng cuộc, bạn cần vượt qua tất cả \(P\) vòng chơi. Ở mỗi vòng chơi, chương trình có một con số bí mật \(V\) và bạn cần tìm ra ẩn số này. Trước khi trò chơi bắt đầu, ban tổ chức thông báo một số nguyên \(D\) và cho bạn gợi ý: Ẩn số cần tìm \(V\) trong tất cả \(P\) vòng chơi đều là một số nguyên không nhỏ hơn \(1\) và không lớn hơn \(D\). Mỗi vòng chơi gồm một số lượt đoán số. Mỗi lượt đoán số diễn ra như sau: Bạn dự đoán một số nguyên \(H \in [1, 10^9]\). Ngay sau đó, ban tổ chức sẽ cho bạn biết các thông tin sau:
Bạn được coi là chiến thắng một vòng chơi nếu tìm ra ẩn số của chương trình sau không quá \(69\) lượt đoán số. Vượt qua cả \(P\) vòng chơi, bạn sẽ nhận được giải thưởng từ chương trình. Số lượt dự đoán số càng ít, giải thưởng của bạn càng lớn.
Đầu tiên, chương trình của bạn đọc hai số nguyên \(P\) và \(D\) (\(1 \le P \le 1000; 1 \le D \le 10^9\)) lần lượt là số vòng chơi và giới hạn \(D\) được thông báo trước khi trò chơi bắt đầu.
Tiếp theo, mỗi lượt đoán số diễn ra như sau:
Lưu ý: Sau khi bạn in ra một số nguyên, bạn cần in ra ký tự xuống dòng và thực hiện thao tác flush luồng ra chuẩn bằng cách gọi các lệnh sau:
fflush(stdout) hoặc cout.flush() trong C++;System.out.flush() trong Java;stdout.flush() trong Python;Nếu bạn không chiến thắng toàn bộ \(P\) vòng chơi, bạn được \(0\) điểm.
Ngược lại, gọi \(Q\) là số lượt đoán số nhiều nhất bạn cần sử dụng trong một vòng chơi, số điểm của bạn được tính như sau:
Nhằm bồi dưỡng tài năng công nghệ thông tin và thử nghiệm nền tảng trực tuyến mới, Việt đứng ra tổ chức một kỳ thi lập trình với những quy chế tính điểm đặc biệt. Thể lệ của kỳ thi được quy định chi tiết như sau:
Hàn là một thí sinh tham gia kỳ thi này. Với kinh nghiệm thi đấu phong phú, sau khi đọc toàn bộ đề, Hàn ước lượng được chính xác năng lực của bản thân đối với từng bài toán:
Yêu cầu: Với giới hạn thời gian \(T\) phút của kỳ thi, hãy giúp Hàn xây dựng chiến thuật: chọn ra một tập các bài toán và sắp xếp thứ tự giải chúng sao cho tổng số điểm giành được là lớn nhất có thể.
Test 1
6 120 250
1 2 3 8 10 13
2 4 5 9 11 14
6 10298
1 2 3 4 5 6
Lưu ý: Kết quả chấm các Subtask 1, 3 và 5 sẽ được ẩn đi trong quá trình thi.
Trong câu lạc bộ nghệ thuật của trường, đạo diễn đang dàn dựng một tiết mục đôi mang tên Vòng Xoay. Điểm nhấn của tiết mục là một dải lụa sân khấu có độ dài đúng bằng \(1\) mét, được buộc vào tay của cả hai người và luôn được giữ căng trong suốt màn biểu diễn để tạo nên các đường chuyển động mềm mại, chính xác.
Biên đạo của tiết mục quy định rằng tại mọi thời điểm luôn có đúng một người giữ vai trò người trụ, còn người kia là người xoay hoạt động như sau:
Việt và Hàn là hai diễn viên chính của buổi biểu diễn. Trên mặt phẳng tọa độ, ban đầu Việt đứng tại \((0, 0)\) còn Hàn đứng tại \((1, 0)\). Khi màn biểu diễn bắt đầu, Việt là người xoay, còn Hàn là người trụ.
Để tiết mục trở nên hấp dẫn hơn, đạo diễn chèn vào kịch bản một số thời điểm đổi vai. Tại một thời điểm đổi vai:
Việc đổi vai diễn ra tức thời và không tốn thời gian. Toàn bộ tiết mục kéo dài đúng \(T\) giây.
Quá trình hoàn thiện tiết mục diễn ra qua \(N\) buổi tập. Ở buổi tập thứ \(i\), đạo diễn bổ sung thêm đúng một mốc đổi vai mới vào kịch bản như sau:
Lưu ý:
Yêu cầu: Với mỗi buổi tập, hãy xác định tọa độ cuối cùng của Việt sau đúng \(T\) giây nếu biểu diễn theo kịch bản của buổi tập đó.
Test 1
2 6
3
2
1 -1
3 1
Trong một tiết học đặc biệt tại phòng lab An ninh mạng của trường VH, thầy giáo tổ chức trò chơi "Cấu hình tối ưu". Thầy giáo đã thiết lập một mạng lưới giả lập gồm \(N\) nút mạng và \(M\) kết nối vô hướng. Nhiệm vụ của học sinh là tham gia lập trình điều khiển một robot ảo mang tên ClawdBot di chuyển và thu hoạch điểm trên mạng lưới này nhằm đạt được điểm số đánh giá cao nhất.
Quá trình thu hoạch điểm yêu cầu học sinh cung cấp cho hệ thống hai thông tin: (1) bản đồ cấu hình chế độ hoạt động của các nút và (2) tuyến đường di chuyển của robot. Cụ thể, học sinh cần thiết lập như sau:
0 (Cực âm - Cathode) hoặc 1 (Cực dương - Anode).Khi ClawdBot di chuyển giữa hai nút \(u\) và \(v\), hệ thống tính điểm được quy định như sau:
Lưu ý: Việc kiểm tra và tính điểm thưởng/phạt này chỉ diễn ra một lần duy nhất trên mỗi cạnh. Nếu robot đi qua một kết nối từ lần thứ hai trở đi, điểm số của học sinh không bị ảnh hưởng.
Yêu cầu: Hãy tìm một phương án cấu hình cho \(N\) nút và một lộ trình di chuyển (có độ dài không quá \(K\)) cho robot ClawdBot sao cho tổng số điểm thu được là lớn nhất.
Đây là một bài output-only (chỉ nộp kết quả đầu ra). Thí sinh tải bộ dữ liệu đầu vào tại đây: ALTPATH_input-only.zip
Sau khi giải nén, bạn có các file đầu vào được đặt tên là test01.inp, test02.inp, ..., mỗi file mô tả một test theo định dạng sau:
Với mỗi file đầu vào testX.inp bạn cần nộp file đầu ra testX.out tương ứng theo định dạng:
0 và 1). Ký tự thứ \(i\) thể hiện chế độ hoạt động của nút thứ \(i\).Mỗi lần nộp bài bạn có thể nộp một hoặc nhiều file đầu ra, bạn cần nén các file đầu ra này lại thành submission.zip để nộp. Ở mục chọn ngôn ngữ của trang nộp bài, chọn "Output".
Test 1
4 4 3
1 2 10 5
2 3 20 10
3 4 30 5
4 1 40 5
0100
3
1 2 3 4
Cấu hình nút: Nút 1 (0 - âm), Nút 2 (1 - dương), Nút 3 (0 - âm), Nút 4 (0 - âm). Lộ trình di chuyển: \(1 \to 2 \to 3 \to 4\).
Tổng điểm thu được: \(10 + 20 - 5 = 25\) điểm. Đây là một cấu hình hợp lệ nhưng có thể chưa phải là cấu hình tối ưu.
Ràng buộc chung: \(N \le 1000, M \le 50000, K \le 10000\).
Đối với mỗi test, bạn sẽ nhận 0 điểm nếu đầu ra không hợp lệ. Một số trường hợp mà output được xem là không hợp lệ:
0 và 1.Ngược lại, gọi: