Điểm: 2
Đề thi HSG - Bài toán mật khẩu
Việc bảo vệ máy tính của mình để hạn chế người khác thâm nhập vào là một vấn đề quan trọng đối với mọi người sử dụng máy tính.
Để tăng tính an toàn trong lưu trữ, một người đã quyết định dấu mật khẩu truy cập máy tính của mình vào một xâu T với một quy ước sao cho khi cần, anh ta có thể lấy lại mật khẩu từ T. Quy ước được thực hiện như sau:
1. Mật khẩu P là một số nguyên tố.
2. P là số nguyên tố lớn nhất có thể tạo được từ các xâu con của T, trong đó một xâu con là một chuỗi liên tiếp các ký tự trong T.
Ví dụ:
Xâu T = "Test1234#password5426" chứa mật khẩu là 23 vì T chứa các xâu con tương ứng với các số nguyên tố 2, 3, 23, và 5.
Yêu cầu:
1. Cho một xâu ký tự T có chiều dài không quá 250 ký tự. Hãy tìm mật khẩu P đã dấu trong xâu T.
2. Đảm bảo rằng P có giá trị nhỏ hơn 10^5 và T chứa ít nhất một số nguyên tố.
Dữ liệu vào:
- Xâu T được cho trong file văn bản PASSWORD.INP gồm một dòng duy nhất là xâu T.
Kết quả:
- Ghi ra file văn bản PASSWORD.OUT chứa số P tìm được.
Ví dụ:
Dữ liệu vào:
Test1234#password5426
Dữ liệu ra:
23
Điểm: 2
Dữ liệu vào: Cho trong file văn bản PHANTHUONG.INP với cấu trúc:
- Dòng 1: Chứa số nguyên dương N là số tầng của tòa tháp (0 < N <= 120).
- Dòng thứ i trong N dòng tiếp theo: Mỗi dòng ghi i số nguyên dương Ai là số món quà trong mỗi phòng từ đỉnh của tòa tháp xuống (1 < Ai <= 60000).
Dữ liệu ra: Ghi ra file văn bản PHANTHUONG.OUT với cấu trúc:
- Dòng 1: Chứa số món quà lớn nhất tìm được.
- Dòng 2: Chứa số món quà của các phòng đã đi qua từ đỉnh đến đáy.
Ví dụ:
PHANTHUONG.INP:
4
20
10 35
45 20 15
2 17 67 34
PHANTHUONG.OUT:
142
20 35 20 67
Điểm: 2
13. Chèn ít ký tự nhất để được xâu pallindrome
Một xâu gọi là xâu đối xứng (palindrom) nếu xâu đó đọc từ trái sang phải hay từ phải sang trái đều như nhau. Cho một xâu S, hãy tìm số kí tự ít nhất cần thêm vào S để S trở thành xâu đối xứng.
Một nhóm gồm N học sinh tham gia câu lạc bộ Tin học, các học sinh được đánh số từ 1 đến N. Biết thời gian mà học sinh i có mặt tại câu lạc bộ là [ai, bi], trong đó ai là thời điểm bắt đầu và bi là thời điểm kết thúc. Cô giáo chủ nhiệm câu lạc bộ muốn đến gặp mặt các học sinh trong nhóm.
Yêu cầu: Hãy giúp cô giáo chủ nhiệm xác định thời điểm đến câu lạc bộ sao cho gặp được nhiều học sinh trong nhóm nhất.
Dữ liệu vào: Cho trong file văn bản GAPMAT.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N, (1 ≤ N ≤ 32000).
- N dòng tiếp theo: Mỗi dòng ghi 2 số nguyên dương ai và bi (1 ≤ ai < bi ≤ 32000), các số được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản GAPMAT.OUT theo cấu trúc như sau:
- Dòng 1: Ghi hai số nguyên dương K T. Trong đó K là số lượng học sinh có mặt ở câu lạc bộ tại thời điểm T mà cô giáo đến. Hai số ghi cách nhau ít nhất một dấu cách.
- Dòng 2: Ghi chỉ số các bạn được gặp
Giới hạn thời gian thực hiện chương trình không quá 2 giây đối với 1 bộ dữ liệu vào. Trong đó có 40% bộ dữ liệu vào có giá trị của N > 16000.
Ví dụ:
Dữ liệu vào:
6
3 2
1 3
2 3
15 79
5 7
9 11
Dữ liệu ra:
3 2
1 3 5
Điểm: 2
Thành phố ABC đang lên kế hoạch xây dựng một hệ thống mạng lưới điện để cung cấp điện cho các khu dân cư. Thành phố có ~n~ khu dân cư và một số tuyến đường có thể được xây dựng để nối các khu dân cư với nhau. Mỗi tuyến đường này có một chi phí xây dựng tương ứng.
Mục tiêu của thành phố là xây dựng mạng lưới điện với chi phí thấp nhất nhưng vẫn đảm bảo rằng mọi khu dân cư đều được kết nối với nhau, trực tiếp hoặc gián tiếp.
📝 Yêu cầu bài toán
Bạn được cung cấp:
Số khu dân cư và số tuyến đường khả thi .
Danh sách các tuyến đường, mỗi tuyến đường gồm:
~u~ và ~v~: Hai khu dân cư được kết nối.
~w~: Chi phí xây dựng tuyến đường này.
Yêu cầu:
Tìm tập hợp các tuyến đường cần xây dựng sao cho:
Mọi khu dân cư đều được kết nối.
Tổng chi phí xây dựng là nhỏ nhất.
Xuất ra:
Danh sách các tuyến đường được chọn.
Tổng chi phí tối thiểu.
✅ Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~ — số khu dân cư và số tuyến đường.
- ~m~ dòng tiếp theo, mỗi dòng gồm 3 số nguyên ~u, v, w~ — biểu thị tuyến đường từ khu dân cư ~u~ đến ~v~ với chi phí ~w~.
✅ Dữ liệu ra
- Dòng đầu tiên in tổng chi phí tối thiểu.
- Tiếp theo, in danh sách các tuyến đường được chọn dưới dạng ~u~ ~v~ ~w~.
📚 Ví dụ
Dữ liệu vào:
4 5
1 2 10
1 3 6
1 4 5
2 4 15
3 4 4
Dữ liệu ra:
19
3 4 4
1 4 5
1 2 10
🔍 Giải thích
Các tuyến đường được chọn là:
- Từ khu 3 đến khu 4 với chi phí 4.
- Từ khu 1 đến khu 4 với chi phí 5.
- Từ khu 1 đến khu 2 với chi phí 10.
- Tổng chi phí tối thiểu là 19.