Cho một xâu kí tự, hãy kiểm tra tính đối xứng của nó. Một xâu kí tự được gọi là xâu đối xứng nếu ta đọc xâu này từ trái sang phải hoặc từ phải sang trái là như nhau.
Ví dụ 1
abccba
YES
Ví dụ 2
abcccc
NO
Cho một tập hợp số \(A\) rỗng.
Bạn được yêu cầu làm một trong ba thao tác sau \(n\) lần:
Với mỗi yêu cầu thao tác 2 hoặc 3, hãy in ra số lớn nhất hoặc số lớn nhì tương ứng với thời điểm yêu cầu.
+ X
\((-10^9 \leq X \leq 10^9)\) tương ứng với thao tác 1BEST
tương ứng với thao tác 2SECOND
tương ứng với thao tác 3Test 1
7
+ 1
BEST
+ 3
SECOND
+ 2
BEST
SECOND
1
1
3
2
Input | Output | Giải thích |
---|---|---|
+ 1 |
Tập hợp lúc này là \(\{1\}\). | |
BEST |
1 |
Tập hợp chỉ có một phần tử, nên số lớn nhất phải là 1. |
+ 3 |
Tập hợp lúc này là \(\{1, 3\}\). | |
SECOND |
1 |
Số lớn nhất là \(3\), số lớn nhì là \(1\). |
+ 2 |
Tập hợp lúc này là \(\{1, 2, 3\}\). | |
BEST |
3 |
Số lớn nhất là \(3\). |
SECOND |
2 |
Số lớn nhì là \(2\). |
Bạn An đang học Toán-ngón-tay, với tuyệt chiêu múa tay tính toán.
Bạn An đang cầm \(X\) viên sỏi đứng trước một dãy vô hạn các ô.
Ô thứ nhất, bạn An rải vào \(b\) viên sỏi.
Từ ô thứ hai trở đi, ô thứ sau sẽ được rải nhiều hơn ô phía trước \(a\) viên sỏi.
Đố các bạn và bạn An, viên sỏi cuối cùng sẽ nằm ở ô số mấy?
À, để làm khó các bạn, thì câu hỏi trên sẽ được hỏi \(t\) lần: giả sử ta thay đổi \(a\), \(b\) và \(X\) trong bài toán trên, thì kết quả tương ứng là bao nhiêu?
Ví dụ 1
1
2 3 10
3
Có một câu hỏi duy nhất: \(a=2; b=3; X = 10\).
Bạn An cần rải 3 viên sỏi ở ô 1, 5 viên sỏi ở ô 2, 7 viên sỏi ở ô 3, ...
Tuy nhiên, sau khi rải xong hai ô đầu, bạn chỉ còn lại 2 viên sỏi.
Vì vậy, viên sỏi cuối cùng nằm ở ô thứ 3.
Ví dụ 2
2
2 3 10
1 1 12
3
5
Có hai câu hỏi.
Câu hỏi đầu tiên có \(a=2; b=3; X = 10\). Đáp án là 3 như trên.
Câu hỏi thứ hai có \(a=1; b=1; X=12\). Đáp án là 5.
Cho một dãy gồm \(n+1\) ô xếp liên tiếp nhau từ ô \(0\) tới ô \(n\); trong đó có \(k\) ô \(A_1, A_2, \dots, A_k\) ta không thể bước chân vào (ô bị chặn).
Bạn ban đầu đứng ở ô \(0\), và bạn phải tìm cách di chuyển tới ô \(n\) bằng cách nhảy 1 ô hoặc nhảy 2 ô.
Cụ thể, nếu bạn đang ở ô \(i\), thì bạn có thể nhảy sang một trong hai ô sau, miễn là nơi bạn nhảy tới không phải là ô bị chặn và vẫn chưa nằm ngoài \(n+1\) ô:
Hãy tìm cách nhảy ít tốn sức nhất.
In ra một số duy nhất là số calo của cách nhảy ít tốn sức nhất.
Trong trường hợp không có cách nhảy nào thỏa mãn, in ra -1.
Ví dụ
7 2
2 3
1 6
11
Ta cần ít nhất 11 calo: \(0 \xrightarrow{\text{3 calo}} 2 \xrightarrow{\text{3 calo}} 4 \xrightarrow{\text{2 calo}} 5 \xrightarrow{\text{3 calo}} 7\)
Cho dãy \(A\) gồm có \(n\) phần tử: \(A_1, A_2, \dots, A_n\).
Gọi \(f(l) = \sum\limits_{i=1}^l A_i + \max\limits_{i=1}^l A_i\), tức là tổng của \(l\) phần tử đầu tiên cộng cho phần tử lớn nhất trong số \(l\) phần tử đầu tiên. Mặc định \(f(0) = 0\).
Hãy trả lời \(q\) câu hỏi có dạng: tìm \(l\) lớn nhất sao cho \(f(l) \leq X\).
Ví dụ 1
5
2 1 3 5 4
1
7
2
Ta có một câu hỏi duy nhất với \(X = 7\).
Vì \(f(2) = (2+1)+2 = 5 < 7\), và \(f(3) = (2 + 1 + 3) + 3 = 9 > 7\) cũng như \(f(4), f(5) > 7\), nên \(l\) lớn nhất thỏa mãn là \(2\).
Ví dụ 2
5
2 1 3 5 4
2
10
7
3
2
Ta có hai câu hỏi.
Câu hỏi thứ nhất là tìm \(l\) lớn nhất sao cho \(f(l) \leq 10\), đáp án là \(3\).
Câu hỏi thứ hai chính là câu hỏi nằm ở ví dụ 1.
Lại tiếp tục cho một dãy gồm \(n+1\) ô xếp liên tiếp nhau từ ô \(0\) tới ô \(n\); trong đó có \(k\) ô \(A_1, A_2, \dots, A_k\) ta không thể bước chân vào (ô bị chặn).
Bạn ban đầu đứng ở ô \(0\), và bạn phải tìm cách di chuyển tới ô \(n\) bằng cách nhảy 1 ô hoặc nhảy 2 ô.
Cụ thể, nếu bạn đang ở ô \(i\), thì bạn có thể nhảy sang một trong hai ô \(i+1\) hoặc \(i+2\), miễn là nơi bạn nhảy tới không phải là ô bị chặn và vẫn chưa nằm ngoài \(n+1\) ô.
Hãy đếm số cách di chuyển từ ô \(0\) tới ô \(n\).
Ví dụ 1
7 2
1 6
3
Có ba cách di chuyển: