Phần tử quan trọng
Cho một dãy số nguyên a gồm n phần tử và một số nguyên dương k. Một phần tử a_i được gọi là quan trọng khi và chỉ khi tồn tại một tập các phần tử của dãy a (giá trị có thể trùng nhau nhưng vị trí bắt buộc phải khác nhau) có chứa phần tử a_i sao cho tổng các giá trị trong tập này lớn hơn hoặc bằng k, nhưng khi bỏ đi số a_i thì tổng các số lại nhỏ hơn k. Hãy xác định xem mỗi phần tử trong dãy a có quan trọng hay không.
Input, Output và Subtasks:
Input:
- Dòng đầu tiên chứa hai số nguyên dương.
- Dòng tiếp theo chức n số nguyên dương của dãy a.
Output:
- In ra một dãy nhị phân độ dài n, bit thứ i là 0 nếu phần tử thứ i không quan trọng và ngược lại.
Subtasks:
- n,k\leq 5.10^4,a_i\leq 10^9 với mọi testcase.
Sample:
Input:
4 10
4 1 6 2
Output:
1010
Notes:
- Tồn tại tập {4,6} có tổng lớn hơn hoặc bằng 10, nhưng khi bỏ một trong hai phần tử đó đi thì tổng sẽ nhỏ hơn 10, vậy phần tử thứ 1 và 3 là quan trọng.
- Với các phần tử 1 và 2, để có được một tập có tổng lớn hơn hoặc bằng 10, tập đó phải có cả phần tử 4 và 6, nên khi bỏ đi phần tử thứ 1 hoặc 2 thì tổng vẫn lớn hơn hoặc bằng 10. Vậy phần tử thứ 2 và 4 là không quan trọng.
Đếm kí tự (Ninh Bình 2024)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
KITU.INP - Tệp ra:
KITU.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Tìm số (Hà Nội (ĐHSP) 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
stdin - Tệp ra:
stdout - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
TLE-oj Cup Round 6 - Truy vấn AOX
Bạn được cho 1 xâu a gồm n ký tự chỉ gồm các ký tự như &, |, ^ (tương đương với phép toán AND, OR, XOR). Bạn phải thực hiện q truy vấn:
- 1 k x: Cập nhật ký tự thứ k trong xâu a thành x (1\le k\le n, x thuộc 1 trong 3 loại ký tự như trên)
- 2 l r k u v: Tính độ đẹp của xâu trong đoạn [l,r] với các giá trị k,u,v (1\le l\le r\le n,1\le k\le 20,0\le u\le v<2^k)
định nghĩa độ đẹp của một xâu ký tự a độ dài x với các giá trị k,u,v như sau: Là số lượng dãy b thỏa mãn (0\le b_i<2^k):
Chú ý: Thứ tự thực hiện tính toán theo các ký tự của xâu a được thực hiện từ trái sang phải
VD: Xâu |^ với k=1,u=1,v=1 thì có các khả năng như sau:
0|0^0=00|0^1=10|1^0=10|1^1=01|0^0=11|0^1=01|1^0=11|1^1=0
Theo như kết quả ở trên, có 4 kết quả thỏa mãn. Vậy độ đẹp của xâu |^ với k=1,u=1,v=1 là 4
Nhiệm vụ của bạn là phải tính toán các kết quả của truy vấn 2. Vì kết quả rất lớn nên hãy xuất kết quả mod\ 10^9+7
Input, Output và Subtasks
Input: (AOXQUERIES.inp)
- Dòng đầu tiên gồm 2 số n và q (1\leq n,q\leq 5\cdot 10^3)
- Dòng thứ hai gồm duy nhất một xâu a
- Sau đó là q dòng, mỗi dòng nhập truy vấn như trên
Output: (AOXQUERIES.out)
- Với mỗi truy vấn loại 2, xuất ra kết quả cần tìm
Subtasks
- Subtask 1 (5\%): n,q\le 20, k=1 với mọi truy vấn loại 2.
- Subtask 2 (10\%): n,q\le 20.
- Subtask 3 (10\%): u=0,v=2^k-1 với mọi truy vấn loại 2.
- Subtask 4 (10\%): k=1 với mọi truy vấn loại 2.
- Subtask 5 (15\%): u=v với mọi truy vấn loại 2.
- Subtask 6 (50\%): Không có ràng buộc gì thêm
Sample
Input (AOXQUERIES.inp)
3 4
&|^
2 2 3 1 1 1
1 3 |
2 2 3 1 0 1
2 1 3 2 2 2
Output (AOXQUERIES.out)
4
8
39
Note
Trong truy vấn 1 đã giải thích ở trên nên sẽ không giải thích lại.
Trong truy vấn 2 dễ dàng nhận thấy với mọi dãy b kết quả có thể ra trong khoảng [0,1], mà có 8 dãy b có thể tạo nên xuất ra 8
TLEoj Contest #09 - Tính tổng
Cho N số nguyên không âm A[1], A[2],..., A[N]. Tính tổng A[1] + A[2] +\dots+ A[N].
Input, Output và Subtasks
Input
Gồm 1 dòng gồm N+1 số nguyên, có giá trị từ 0\rightarrow 10^7, bao gồm các số N, A[1], A[2],..., A[N].
Output
Gồm 1 dòng là kết quả cần tìm mod\ 2147483648.
Sample
Sample Input
3 41 60 29
Sample output
130
Sample
Sample Input
5 35 80 45 66 68
Sample output
294
Sample
Sample Input
7 38 43 44 65 49 3 77
Sample output
319
TLE-oj Cup Round 10 - Hoa ngũ vị
Bài toán không mang tính chất cà khịa hay công kích bất cứ cá nhân hay tổ chức nào. Chúng tôi thành thật xin lỗi những cá nhân / tập thể cảm thấy bị xúc phạm vì đề bài này
Hoa ngũ vị (tên khoa học Ageratum conyzoides) là một loài cây thuộc họ Cúc. Với mùi hương tinh tuý, đây là loại hoa được nhiều người yêu thích để trang trí trong nhà
Như thường ngày, anh T và đàn chó Shiba của anh ấy đi dạo buổi sáng. Ở ngoài vườn có n cây hoa ngũ vị. Cây thứ i có cường độ mùi hương là i. Có m con chó Shiba, gu của con thứ i có “độ mặn” là a_i, đồng nghĩa với việc chúng chỉ ngửi những cây hoa ngũ vị có cường độ mùi hương là a_i trở lên.
Những con chó Shiba đều khá tham lam, chúng rất ghét tranh giành nhau chỗ đứng để ngửi hoa, nên mỗi cây hoa chỉ có thể có tối đa 1 con chó Shiba ngửi. Và do chúng cũng rất thích tận hưởng, mỗi con chó Shiba chỉ ngửi 1 cây hoa duy nhất. Do không muốn đàn chó của mình tranh cãi với nhau, anh T rất muốn phân chia sao cho mỗi con chó ngửi 1 cây hoa ngũ vị, và mỗi cây hoa ngũ vị có tối đa 1 con chó ngửi.
Hãy giúp anh T đếm số cách để chia nhé. Vì kết quả có thể rất lớn, ta chỉ cần xuất ra số dư khi chia kết quả cho 998244353
Input, Output và Subtasks
Input: (HOANGUVI.inp)
- Dòng đầu tiên chứa 2 số n và m (n\le 10^9,m\le 10^6)
- Dòng tiếp theo chứa m số a_1,a_2,\dots,a_m (a_i\le 10^9)
Output: (HOANGUVI.out)
- Xuất ra 1 số duy nhất là kết quả mod\ 998244353
Subtasks
- Subtask 1 (20\%): n,m\le 10.
- Subtask 2 (20\%): a_1=a_2=\dots=a_n
- Subtask 3 (60\%): Không có giới hạn gì thêm.
Sample 1
Input (HOANGUVI.inp)
4 3
1 1 1
Output (HOANGUVI.out)
24
Biến đổi dãy (TS10 QT 2023)
Cho dãy số gồm n số nguyên a_1,a_2,\dots,a_n. Xuất phát từ dãy ban đầu và thực hiện q lần thuộc một trong hai loại phép toán sau trên các dãy thu được:
- Thay phần tử thứ i của dãy bằng x
- Dịch dãy sang phải k vị trí, nếu dãy hiện tại là a_1,a_2,\dots,a_n thì sau khi dịch sẽ là dãy a_{n-k+1},a_{n-k+2},\dots,a_n,a_1,a_2,\dots,a_{n-k}
Yêu cầu: Sau mỗi lần thực hiện phép toán loại 1, hãy tính tổng giá trị các phần tử của dãy thu được
Input, Output và Subtasks
Input: (CAU4.INP)
- Dòng thứ nhất gồm số nguyên dương n (2\le n\le 10^5)
- Dòng thứ hai ghi n số nguyên, các số ghi cách nhau dấu cách là giá trị của các số hạng của dãy a_1,a_2,\dots,a_n (|a_i|\le 10^9)
- Dòng thứ ba ghi số nguyên dương q (q\le q\le 10^5) là số phép toán cần thực hiện
- q dòng tiếp theo, mỗi dòng mô tả một phép toán, các giá trị ghi cách nhau dấu cách:
- 1\ i\ x là phép toán loại 1 (1\le i\le n,|x|\le 10^9)
- 2\ k là phép toán loại 2 (1\le k\le n)
Output: (CAU4.OUT)
- Tương ứng với mỗi phép toán loại 1, ghi ra một số nguyên trên một dòng là tổng các số hạng của dãy sau khi thực hiện phép toán, thứ tự các kết quả theo đúng thứ tự các phép toán loại 1 trong tệp dữ liệu vào. Biết rằng kết quả không vượt quá 10^{18}
Subtasks
- Subtask 1 (20\%): 2\le n\le 1000 và chỉ gồm phép toán loại 1
- Subtask 2 (40\%): 2\le n\le 1000
- Subtask 3 (40\%): Không có ràng buộc gì thêm
Sample
Input (CAU4.INP)
4
4 1 2 5
4
2 2
1 2 7
2 1
1 3 -4
Output (CAU4.OUT)
14
3
Note
Dãy ban đầu: [4,1,2,5]
Sau phép toán thứ nhất: [2,5,4,1]
Sau phép toán thứ hai: [2,7,4,1], có tổng bằng 14
Sau phép toán thứ ba: [1,2,7,4]
Sau phép toán thứ tư: [1,2,-4,4], có tổng bằng 3
TLEoj Contest #06 - Bộ ba tổng
Một bộ ba (i, j, k) được gọi là bộ ba thành tổng nếu nó thỏa mãn:
- 1 \le i, j, k \le n.
- i+j+k = m.
Cho hai số nguyên dương n, m, hãy in ra số lượng bộ ba (i, j, k) là bộ ba thành tổng.
Input, Output and Scoring
Input
- Dòng đầu bao gồm 1 số t là số testcase (1\le t\le 10)
- Sau đó là t dòng, mỗi dòng gồm 2 số nguyên dương n, m (1 \le n \le 2 \times 10^6; 1 \le m \le 3 \times n).
Output
- Với mỗi testcase, in ra kết quả tương ứng trên 1 dòng.
Scoring
- Subtask 1 (20\%): 1 \le n \le 2 \times 10^2.
- Subtask 2 (30\%): 1 \le n \le 2 \times 10^3.
- Subtask 3 (50\%): Không giới hạn gì thêm.
Example
Input
3
5 1
2 6
3 7
Output
0
1
6
Note
- Trong testcase 1, ta dễ dàng nhận thấy không có bộ ba nào thỏa mãn
- Trong testcase 2, chỉ có 1 bộ ba thỏa mãn là (2,2,2).
- Trong testcase 3, có 6 bộ ba thỏa mãn là (1, 3, 3), (2, 2, 3), (2, 3, 2), (3, 1, 3), (3, 2, 2) và (3, 3, 1).
TLE-oj Cup Round 7 - Hình chữ nhật
Cho một bảng hình chữ nhật có kích thước m \times n (m hàng n cột) và hai dãy số nguyên a_1, a_2, ..., a_m và b_1, b_2, ..., b_n. Ô ở hàng i cột j của bảng sẽ được điền số a_i + b_j. Bạn phải cắt ra k hình chữ nhật, mỗi hình chữ nhật có kích thước là h \times w (h hàng w cột, không được xoay), và các hình chữ nhật không được có ô chung (có thể chung đỉnh hoặc chung cạnh), sao cho tổng các số được ghi trên các ô của các hình chữ nhật là lớn nhất.
Input, Output và Subtasks
Input: (RECTS.inp)
- Dòng đầu tiên gồm 5 số nguyên dương: m, n, h, w, k. Dữ liệu đầu vào đảm bảo m \ge k \times h và n \ge k \times w.
- Dòng thứ hai gồm m số nguyên không âm a_1, a_2, ..., a_m (0 \le a_i \le 10^8).
- Dòng thứ ba gồm n số nguyên không âm b_1, b_2, ..., b_n (0 \le b_i \le 10^8).
Output: (RECTS.out)
- In ra tổng các số lớn nhất có thể đạt được.
Subtasks
| m, n \le 10, h = w = 1 | m, n \le 10 | m, n \le 100 | m, n \le 10^5 | Tổng | |
|---|---|---|---|---|---|
| k = 1 | 3\% | 6\% | 9\% | 12\% | 30\% |
| k = 2 | 3\% | 6\% | 9\% | 12\% | 30\% |
| k = 3 | 4\% | 8\% | 12\% | 16\% | 40\% |
| Tổng | 10\% | 20\% | 30\% | 40\% | 100\% |
Sample 1
Input (RECTS.inp)
3 4 2 2 1
1 1 2
1 1 1 1
Output (RECTS.out)
10
Note
| Cột 1 (1) | Cột 2 (1) | Cột 3 (1) | Cột 4 (1) | |
|---|---|---|---|---|
| Hàng 1 (1) | 2 | 2 | 2 | 2 |
| Hàng 2 (1) | 2 | 2 | 2 | 2 |
| Hàng 3 (2) | 3 | 3 | 3 | 3 |
Một trong những cách chọn tốt nhất là chọn các ô (2, 1), (2, 2), (3, 1), (3, 2) tạo thành hình vuông 2 \times 2 có tổng giá trị là 10.
Sample 2
Input (RECTS.inp)
4 4 2 2 2
1 3 2 0
1 1 1 1
Output (RECTS.out)
28
Note
| Cột 1 (1) | Cột 2 (1) | Cột 3 (1) | Cột 4 (1) | |
|---|---|---|---|---|
| Hàng 1 (1) | 2 | 2 | 2 | 2 |
| Hàng 2 (3) | 4 | 4 | 4 | 4 |
| Hàng 3 (2) | 3 | 3 | 3 | 3 |
| Hàng 3 (0) | 1 | 1 | 1 | 1 |
Cách chọn tối ưu là cách chọn hai hình chữ nhật:
- Hình chữ nhật thứ nhất có góc trái trên (2, 1) và góc phải dưới (3, 2).
- Hình chữ nhật thứ nhất có góc trái trên (2, 3) và góc phải dưới (3, 4).
Tổng giá trị của hai hình chữ nhật này là 28.
Sample 3
Input (RECTS.inp)
6 6 2 2 3
1 3 2 0 0 0
1 2 3 1 2 2
Output (RECTS.out)
52
Note
Cách chọn tối ưu là cách chọn ba hình chữ nhật:
- Hình chữ nhật thứ nhất có góc trái trên (1, 2) và góc phải dưới (2, 3).
- Hình chữ nhật thứ nhất có góc trái trên (3, 2) và góc phải dưới (4, 3).
- Hình chữ nhật thứ nhất có góc trái trên (5, 2) và góc phải dưới (6, 3).
Tổng giá trị của hai hình chữ nhật này là 52.
Goldbach (Lâm Đồng 2023)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
CAU2.INP - Tệp ra:
CAU2.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Trò chơi chọn bóng (HSG9 NA 2023)
Ngày thành lập Đoàn 26/3 sắp đến. Tuấn cùng nhóm bạn của mình được giao thiết kế một trò chơi trí tuệ dành cho các đoàn viên trong trường. Sau một thời gian tìm hiểu và nghiện cứu, nhóm của Tuấn đã xây dựng một trò chơi có nội dung như sau:
Một rổ bóng có n quả bóng. Các quả bóng được đánh số từ 1 đến n. Quả bóng thứ i có màu được mã hóa bởi một số nguyên dương c_i (1\leq c_i\leq k), trong đó k là số màu khác nhau trong n quả bóng. Mỗi lần chời, người chơi sẽ chọn hai quả bóng khác màu trong rổ bóng và đưa hai quả bóng này ra khỏi rổ. Người chơi sẽ dừng lại khi trong rổ không còn quả bóng nào hoặc không có hai quả bóng khác màu. Số bóng được lấy ra khỏi rổ là số điểm của người chơi.
Tuấn cùng nhóm bạn muốn biết người chơi có thể đạt được điểm lớn nhất là bao nhiêu? Bạn hãy lập trình để tìm kết quả này nhé.
Input, Output và Subtasks
Input: (ChonBong.inp)
- Dòng 1 ghi hai số nguyên n và k (2\leq k\leq n\leq 2\times 10^5) tương ứng là số quả bóng trong rổ và số màu khác nhau của n quả bóng.
- Dòng 2 ghi n số nguyên dương c_1, c_2, ..., c_n (1\leq c_i\leq k) tương ứng là mã màu của n quả bóng.
Output: (ChonBong.out)
- Gồm một số nguyên duy nhất là số điểm lớn nhất người chơi có thể nhận được.
Subtasks
- Có 20\% số test ứng với 20\% số điểm thỏa mãn 2\leq n\leq 2000; k=2.
- Có 30\% số test ứng với 30\% số điểm thỏa mãn 2\leq n\leq 2000; k=3.
- Có 30\% số test ứng với 30\% số điểm thỏa mãn 4\leq n\leq 2000; 3<k\leq n.
- Có 20\% số test ứng với 20\% số điểm thỏa mãn 2000<n\leq 2\times 10^5; 3<k\leq n.
Sample
Input (ChonBong.inp)
6 2
1 2 2 1 1 1
Output (ChonBong.out)
4
Notes
- Lần 1: Chọn quả bóng thứ 1 và thứ 2 với mã màu tương ứng là 1 và 2.
- Lần 2: Chọn quả bóng thứ 3 và thứ 4 với mã màu tương ứng là 2 và 1.
- Trong rổ bóng lúc này còn 2 quả thứ 5, 6 đều có mã màu bằng 1. Trò chơi kết thúc và người chơi được 4 điểm. Đây là số điểm cao nhất mà người chơi có thể nhận được.
Sample
Input (ChonBong.inp)
4 3
3 3 1 2
Output (ChonBong.out)
4
Notes
- Lần 1: Chọn quả bóng thứ 1 và thứ 3 với mã màu tương ứng là 3 và 1.
- Lần 2: Chọn quả bóng thứ 2 và thứ 4 với mã màu tương ứng là 3 và 2.
- Trong rổ bóng lúc này không còn quả bóng nào. Trò chơi kết thúc và người chơi được 4 điểm. Đây là số điểm cao nhất mà người chơi có thể nhận được.
Lucky Trio
Một buổi chào cờ được diễn ra để tổng kết năm học, gộp chung với chúc mừng ngày Quốc tế thiếu nhi. Sau các phần giới thiệu, văn nghệ, thành tích năm học khép lại một năm học của các em học sinh, sẽ đến với phần là trò chơi.
Hiện tại, một trò chơi nhận thưởng được diễn ra như sau:
Các em học sinh ngồi theo các hàng ghế song song với nhau. Trong đó có N hàng, và hàng ghế thứ i sẽ chứa A_i em học sinh. Và thoả mãn một điều rằng, không một em học sinh nào trên ba hàng khác nhau ngồi thẳng hàng.
Thầy/cô dẫn chương trình sẽ bốc các tờ giấy ghi họ tên lớp của học sinh trong một cái thùng, và chỉ được bốc ba lần tương ứng ba tờ giấy.
Những bộ ba học sinh trùng thông tin với thông tin ghi trên tờ giấy sẽ được lên nhận thưởng “Bộ ba may mắn” với các món quà như chiếc bút chì, cái hộp bút, cục tẩy, bộ sách vở,...
Một sự ngẫu nhiên bất ngờ trong trò chơi này chính là với “Bộ ba may mắn” đó nếu nối vị trí ba em học sinh sẽ tạo được thành một hình tam giác có diện tích lớn hơn 0.
Các thầy/cô chuẩn bị cần phải đếm xem có bao nhiêu “Bộ ba may mắn” để có thể chuẩn bị quà phù hợp. Nhưng số lượng đó là quá lớn, các thầy/cô đã nhờ đến bạn, một học sinh giỏi toán và cũng giỏi lập trình để đếm trong thời gian nhanh nhất!
Input [standard]
- Dòng đầu ghi một số nguyên N (2 ≤ N ≤ 100) – Số hàng ghế.
- N dòng sau, dòng thứ i + 1 (1 ≤ i ≤ N) ghi một số nguyên A_i (1 ≤ A_i ≤ 1000) – Số học sinh trên hàng ghế thứ i.
Output [standard]
- Ghi ra số “Bộ ba may mắn”.
Scoring
- 20\% số test có giới hạn bổ sung là N = 2.
- 40\% số test có giới hạn bổ sung là 2 < N \le 50.
- 40\% số test có giới hạn như đề đã cho.
Example Tests
Example Test #1
INPUT
2
2
2
OUTPUT
4
Explanation
Có tổng cộng bốn cách sau:




Tổng (Lâm Đồng 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
CAU1.INP - Tệp ra:
CAU1.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
TLEoj Contest #04 - Sqrt++
Sqrt, sqrt, sqrt!
Ban đầu bạn có một số x=1. Mỗi lần bạn tăng x lên \left \lfloor \sqrt x \right \rfloor. Trong đó \left \lfloor x \right \rfloor là phép làm tròn xuống. Ví dụ: \left \lfloor 5.2 \right \rfloor=5,\left \lfloor 6.9 \right \rfloor=6
Nhiệm vụ của bạn là kiểm tra xem sau k bước, giá trị x bằng bao nhiêu.
Input, Output và Subtasks
Input
- Dòng đầu chứa số nguyên dương t là số testcase (1\le t\le 10^5);
- t dòng tiếp theo, mỗi dòng chứa một số nguyên dương k (1\le k\le 10^9)
Output
Xuất ra t dòng, mỗi dòng xuất ra kết quả tương ứng trên một dòng
Scoring
- Subtask 1 (50\%): k\le 10^6
- Subtask 2 (50\%): Không có ràng buộc gì thêm
Sample
Input
10
1
2
3
4
5
6
7
8
9
10
Output
2
3
4
6
8
10
13
16
20
24
TLE-oj Cup Round 12 - Lật giấy
Một bài toán đến từ Bình Dương
đang chơi lật giấy. Giả sử tờ giấy là ma trận 2^x\cdot 2^y, giá trị ở ô (i,j) là a_{i,j}. có thể thực hiện lật giấy theo một trong 4 cách: Lật trái, phải, trên, dưới. Cụ thể có thể liệt kê như sau:
-
Lật dọc: Ma trận 2^x\cdot 2^y đổi thành ma trận 2^x\cdot 2^{y-1} (y>0). Có thể xem ví dụ như trên:
1 2|3 4 5 6|7 8
Việc lật này lại chia làm lật trái hoặc lật phải:- Lật trái: Với mọi giá trị i,j (1\le i\le 2^x,1\le j\le 2^{y-1}), cập nhật a_{i,2^y-j+1}=a_{i,2^y-j+1}-a_{i,j}. Sau đó, bỏ phần ma trận trái
- Lật phải: Với mọi giá trị i,j (1\le i\le 2^x,1\le j\le 2^{y-1}), cập nhật a_{i,j}=a_{i,j}-a_{i,2^y-j+1}. Sau đó, bỏ phần ma trận phải
Sau khi bỏ ma trận, y sẽ bị trừ đi 1
Hãy xét ví dụ như trong hình trên, việc lật trái làm thay đổi ma trận thành:
0 0|3-2 4-1 => 0 0|1 3 => 1 3 0 0|7-6 8-5 => 0 0|1 3 => 1 3 -
Lật ngang: Ma trận 2^x\cdot 2^y đổi thành ma trận 2^{x-1}\cdot 2^y (x>0). Có thể xem ví dụ như trên:
1 2 3 4 _______ 5 6 7 8
Việc lật này lại chia làm lật trên hoặc lật dưới:- Lật trên: Với mọi giá trị i,j (1\le i\le 2^{x-1},1\le j\le 2^y), cập nhật a_{2^x-i+1,j}=a_{2^x-i+1,j}-a_{i,j}. Sau đó, bỏ phần ma trận trên
- Lật dưới: Với mọi giá trị i,j (1\le i\le 2^{x-1},1\le j\le 2^y), cập nhật a_{i,j}=a_{i,j}-a_{2^x-i+1,j}. Sau đó, bỏ phần ma trận dưới
Sau khi bỏ ma trận, x sẽ bị trừ đi 1
Hãy xét ví dụ như trong hình trên, việc lật trên làm thay đổi ma trận thành:
0 0 0 0 => 0 0 0 0 _______________ _______ => 4 4 4 4 5-1 6-2 7-3 8-4 => 4 4 4 4
Việc lật này diễn ra đến khi ra ma trận 1\cdot 1 (tức x=y=0) thì thôi. Gọi kết quả đó là v
Gọi f(M,x,y) (với x,y là kích thước, M là ma trận cho trước kích thước 2^x\cdot 2^y) là tổng tất cả các giá trị v trong tất cả khả năng lật.
thấy lật giấy có một tờ thì chán quá nên sẽ chuẩn bị rất nhiều tờ giấy để lật. sẽ chuẩn bị ba giá trị n,m,k. Các tờ giấy sẽ là tất cả ma trận M kích thước 2^n\cdot 2^m, với các giá trị nằm trong đoạn [1,k]. Tổng cộng có k^{2^{n+m}} bảng khác nhau. Nhiệm vụ của bạn là tính tổng tất cả f(M,n,m) có thể tạo được.
Input, Output và Subtasks
Input: (FOLD.inp)
- Gồm 3 số n,m,k (0\le n,m\le 10^{18}, 1\le k\le 10^{18})
Output: (FOLD.out)
- In ra một số duy nhất là kết quả bài toán. Vì kết quả có thể rất lớn nên hãy xuất kết quả sau khi mod\ 10^9+7
Subtasks
- Subtask 1 (25\%): n,m,k\le 2
- Subtask 2 (25\%): n,m\le 10^6
- Subtask 3 (25\%): n,m\le 10^{12}
- Subtask 4 (25\%): Không có ràng buộc gì thêm
Sample
Input (FOLD.inp)
0 0 3
Output (FOLD.out)
6
Note
- Có 3 ma trận M kích thước 1\cdot 1 có thể tạo ra, là
1,2,3. Các ma trận trên đều kích thước 1\cdot 1 nên không phải lật gì cả. Kết quả là 1+2+3=6
TLEoj Contest #08 - Số Sigma
nah không có quote cho bài này đâu 🐧
Theo nguồn bệnh ung thư não lớn nhất thế giới, Sigma được hiểu là một người đàn ông sống cuộc sống dựa trên các quy tắc của riêng mình, phát triển vì đam mê của mình, không bị phân tâm bởi các quy tắc hoặc tiêu chuẩn xã hội. Cũng vì trend đấy, thầy của mondellbit009 là đã ra một bài rất khó hiểu, mà nếu hiểu thì cũng không biết làm 🐧, đó là:
Cho một dãy số gồm n phần tử, hãy cho biết có bao nhiều phần tử là sigma. Được biết số sigma là số chỉ có 2 ước là 1 và chính nó.
mondellbit009 đang rất mệt mỏi để làm bài đấy. Các bạn hãy giúp nhé :D
Input, Output và Subtask
Input
- Dòng đầu tiên nhập n (1 \le n \le 10^6)
- Dòng tiếp nhập mảng a gồm n phần tử (2 \le a_i \le 10^9)
Output
In ra đáp án cần tìm.
Subtask
- 50\% số test có n \le 10 ^ 4 và a_i \le 10^6
- 50\% số test còn lại không có điều kiện gì thêm
Example và Explain
Sample Input
5
4 3 9 7 10
Sample Output
2
Explain
- Số 3 và 7 là số sigma.
TLEOJ Contest #10 - Tổng dãy con
Sau khi bị đăng meme :truongsinh:, đã trở nên vô cùng tức giận và thách đấu 1 trận. Nếu thắng thì phải xin lỗi anh ta và gỡ meme :truongsinh: đang nổi đình nổi đám dạo gần đây (nhưng rồi sẽ đăng lại
). Sau đó, đã thách đố họ một bài toán và nếu ai làm đúng trước sẽ là người chiến thắng , và anh ta cũng sẽ là trọng tài.
có 1 dãy số a vô tận bắt đầu bằng số x và số sau bằng số trước cộng thêm k. Dãy số b vô tận được tạo thành bởi việc lấy 2 chữ số cuối của số ở vị trí tương ứng trong dãy a.
Ví dụ với dãy số a có x = 1 và k = 33 thì ta có dãy a = 1, 34, 67, 100, 133, 166, .... Ta có dãy b tương ứng là 1,34, 67, 0, 33, 66, ...
Yêu cầu: Tính tổng n số đầu tiên trong dãy b.
Input, Output và Subtask
Input
- Nhập vào ba số tự nhiên lần lượt là x, k, n. Mỗi số ghi trên một dòng
Output
- Đưa ra một số tự nhiên là kết quả của bài toán.
Subtask
- Subtask 1 (60\%): 1 \le x, k, n \le 10^3.
- Subtask 2 (40\%): 1 \le x, k, n \le 10^9.
Example
Sample input
1
33
4
Sample output
102
Note
1 + 34 + 67 + 0 = 102.
TLE-oj Cup Round 2 - GCD giai thừa
Cho hai số nguyên dương a, b, hãy tính gcd(a!, b) (a!=1\times 2 \times \dots \times a, đọc là a giai thừa).
Input, Output và Subtasks
Input (GCDFAC.inp)
- Một dòng duy nhất gồm hai số nguyên dương a, b.
Output (GCDFAC.out)
- Một dòng duy nhất gồm kết quả bài toán.
Subtasks
- Subtask 1 (10\%): a \le 20, b \le 10^{18}.
- Subtask 2 (20\%): a \le 10^4, b \le 10^{6}.
- Subtask 3 (20\%): a \le 10^4, b \le 10^{16}.
- Subtask 4 (20\%): a \le 10^5, b \le 10^{18}.
- Subtask 5 (30\%): a \le 10^6, b \le 10^{18}.
Sample
Input (GCDFAC.inp)
4 36
Output (GCDFAC.out)
12
Notes
- Ta có 4!=24 và gcd(24,36)=12.