| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Tên tệp tin | 6 (p) | 1.0s | 256M |
| 2 | Tích chính phương | 5 (p) | 0.5s | 1G |
| 3 | Phép chia nguyên | 3 (p) | 1.0s | 1G |
| 4 | Xâu đối xứng | 2 (p) | 1.0s | 1G |
Bài tập mà Q đang giải có yêu cầu đọc dữ liệu từ tệp văn bản \(S\).inp. Do quá vội, Q đã gõ dư một ký tự q vào cuối phần tên tệp. Ví dụ, với tên tệp được yêu cầu là DIV.inp, Q đã gõ nhầm thành DIVq.inp.
Yêu cầu: Cho biết tên tệp tin đã gõ nhầm, hãy tìm lại xâu ký tự \(S\).
*.inp hoặc *q.inp như đã mô tả ở trên).a-z và A-Z).Test 1
DIVq.inp
DIV
Xâu \(S\) cần tìm là DIV.
Bạn được cho một số nguyên dương \(P\). Tìm hai số nguyên dương \(L, D\) sao cho:
SQPROD.inp:SQPROD.out:-1 -1.Test 1
3
2
5
7
1 1
1 4
-1 -1
Trong bộ dữ liệu đầu tiên, ta có \((1, 1)\) là một cặp số thỏa mãn vì \(1 + 1 = 2\) và \(1 \times 1 = 1 = 1^2\).
Tương tự, trong bộ dữ liệu thứ hai ta có \(1 + 4 = 5\) và \(1 \times 4 = 4 = 2^2\).
Để giúp các bạn trong lớp ôn lại kiến thức về phép chia lấy dư, thầy giáo của Alice đưa ra một bài toán như sau:
Cho một dãy số nguyên \(a_1, a_2, \dots, a_n\), với \(a_i \neq 0\). Với mỗi cặp \((i, j)\) (\(1 \le i, j \le n\)), tính giá trị \(\lfloor \frac{a_i}{a_j} \rfloor\), với \(\lfloor x \rfloor\) là số nguyên lớn nhất không vượt quá \(x\).
Tất nhiên, trong thời gian của tiết học, thầy giáo chỉ có thể đưa ra một dãy số với độ dài nhỏ để kiểm tra kiến thức các bạn. Alice muốn thử thách bản thân với những dãy số dài hơn. Để kiểm tra xem mình có tính đúng hay không, Alice muốn bạn tính tổng các giá trị \(\lfloor \frac{a_i}{a_j} \rfloor\) giúp Alice nhé.
Test 1
4
1 2 3 4
17
Dưới đây là bảng các giá trị \(\lfloor \frac{a_i}{a_j} \rfloor\):
| \(1\) | \(2\) | \(3\) | \(4\) | |
|---|---|---|---|---|
| \(1\) | \(1\) | \(2\) | \(3\) | \(4\) |
| \(2\) | \(0\) | \(1\) | \(1\) | \(2\) |
| \(3\) | \(0\) | \(0\) | \(1\) | \(1\) |
| \(4\) | \(0\) | \(0\) | \(0\) | \(1\) |
Tổng cần tìm là: \(1 + 2 + 3 + 4 + 1 + 1 + 2 + 1 + 1 + 1 = 17\).
Có \(N\) xâu \(s_1, s_2, \dots, s_n\) ban đầu rỗng và \(Q\) truy vấn. Truy vấn thứ \(i\) gồm hai số nguyên \(X_i, Y_i\) và ký tự \(C_i\), yêu cầu thêm ký tự \(C_i\) vào các xâu \(s_j\) với mọi \(j\) chia \(X_i\) dư \(Y_i\). Cho biết sau khi tất cả các truy vấn được thực hiện, có những xâu \(s_j\) nào thỏa mãn: tồn tại cách sắp xếp lại các ký tự trong xâu để được một xâu đối xứng.
Test 1
5 4
2 1 a
2 0 b
3 2 a
4 2 b
1 2 3 4 5
Các ký tự được thêm vào như sau:
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| \(s_1\) | a | ||||
| \(s_2\) | b | a | b | ||
| \(s_3\) | a | ||||
| \(s_4\) | b | ||||
| \(s_5\) | a | a |
Sau khi tất cả các ký tự đã được thêm, \(s_1\) và \(s_3\) có thể được sắp xếp thành a, \(s_2\) có thể được sắp xếp thành bab, \(s_4\) có thể được sắp xếp thành b, \(s_5\) có thể được sắp xếp thành aa.
a với mọi truy vấn.a hoặc $c_i = $ b với mọi truy vấn.