Mảng 2 chiều nâng cao - Olympic 2026
In các phần tử nằm trên đường chéo chính của ma trận
Nộp bàiPoint: 1
Nhập vào một ma trận vuông A gồm các số thực có kích thước n * n, sau đó in ra các phần tử nằm phía trên đường chéo chính (nằm ở tam giác phía trên đường chéo chính).
Ràng buộc: ~0 < n \leq 10^3~, ~-10^6 \leq A[i] \leq 10^6~
Input 01:
3
1 2 3
4 5 6
7 8 9
Output 01:
1 5 9
Input 02:
4
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
Output 02:
1 6 3 8
In các phần tử nằm dưới đường chéo chính của ma trận
Nộp bàiPoint: 1
Nhập vào một ma trận vuông A gồm các số thực có kích thước n * n, sau đó in ra các phần tử nằm phía dưới đường chéo chính (nằm ở tam giác phía dưới đường chéo chính).
Ràng buộc: ~0 < n \leq 10^3~, ~-10^6 \leq A[i] \leq 10^6~
Input 01:
3
1 2 3
4 5 6
7 8 9
Output 01:
4 7 8
Input 02:
4
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
Output 02:
5 1 2 5 6 7
In các phần tử nằm trên đường chéo phụ của ma trận
Nộp bàiPoint: 1
Nhập vào một ma trận vuông A gồm các số thực có kích thước n * n, sau đó in ra các phần tử nằm phía trên đường chéo phụ (nằm ở tam giác phía trên đường chéo phụ).
Ràng buộc: ~0 < n \leq 10^3~, ~-10^6 \leq A[i] \leq 10^6~
Input 01:
3
1 2 3
4 5 6
7 8 9
Output 01:
3 5 7
Input 02:
4
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
Output 02:
4 7 2 5
In các phần tử nằm dưới đường chéo phụ của ma trận
Nộp bàiPoint: 1
Nhập vào một ma trận vuông A gồm các số thực có kích thước n * n, sau đó in ra các phần tử nằm phía dưới đường chéo phụ (nằm ở tam giác phía dưới đường chéo phụ).
Ràng buộc: ~0 < n \leq 10^3~, ~-10^6 \leq A[i] \leq 10^6~
Input 01:
3
1 2 3
4 5 6
7 8 9
Output 01:
6 8 9
Input 02:
4
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
Output 02:
8 3 4 6 7 8
In ma trận theo mẫu
Nộp bàiPoint: 1
Cho ma trận vuông cỡ NxN gồm N hàng, mỗi hàng N cột. Hãy in ra ma trận theo các mẫu dưới đây.
Đầu vào
Dòng đầu tiên là số N. N dòng tiếp theo mỗi dòng có N số.
Giới hạn
1≤n≤500
Các phần tử trong ma trận là số dương không quá 10^9.
Đầu ra
In ra ma trận theo mẫu, xem test case để rõ hơn.
Ví dụ :
Input 01
5
510 745 649 186 313
474 22 168 18 787
905 958 391 202 625
477 414 314 824 334
874 372 159 833 70
Output 01
Pattern 1:
510 474 905 477 874
745 22 958 414 372
649 168 391 314 159
186 18 202 824 833
313 787 625 334 70
Pattern 2:
70 833 159 372 874
334 824 314 414 477
625 202 391 958 905
787 18 168 22 474
313 186 649 745 510
Pattern 3:
313 787 625 334 70
186 18 202 824 833
649 168 391 314 159
745 22 958 414 372
510 474 905 477 874
Pattern 4:
313 186 649 745 510
787 18 168 22 474
625 202 391 958 905
334 824 314 414 477
70 833 159 372 874
Đếm các số nguyên tố trên đường chéo chính và phụ (mảng 2 chiều cơ bản)
Nộp bàiPoint: 1
Cho ma trận vuông cỡ NxN gồm N hàng, mỗi hàng N cột. Hãy đếm các số nguyên tố trên đường chéo chính và đường chéo phụ, mỗi giá trị là số nguyên tố thỏa mãn chỉ đếm 1 lần.
Định dạng đầu vào: Dòng đầu tiên là số N. N dòng tiếp theo mỗi dòng có N số.
Ràng buộc: 1 ≤ n ≤ 200; Các phần tử trong ma trận là số dương không quá 10^6;
Định dạng đầu ra: In ra số lượng số nguyên tổ trên đường chéo chính và phụ.
Input:
3
1 2 3
4 5 6
7 8 9
Output:
3
Liệt kê các số nguyên tố trong mảng 2 chiều (mảng 2 chiều cơ bản)
Nộp bàiPoint: 1
Cho ma trận cỡ NxM gồm N hàng, mỗi hàng M cột. Hãy liệt kê các số nguyên tố theo từng hàng trong ma trận.
Định dạng đầu vào: Dòng đầu tiên là 2 số N và M. N dòng tiếp theo mỗi dòng có M số.
Ràng buộc: 1 ≤ n,m ≤ 500; Các phần tử trong ma trận là số dương không quá 10^9.
In ra các số nguyên tố trong ma trận theo từng dòng
Input:
3 3
1 2 3
4 5 6
7 8 9
Output:
2 3
5
7
Sắp xếp các hàng của ma trận (mảng 2 chiều cơ bản)
Nộp bàiPoint: 1
Cho ma trận vuông cỡ NxN gồm N hàng, mỗi hàng N cột. Hãy sắp xếp các phần tử của từng hàng của ma trận theo thứ tự tăng dần.
Định dạng đầu vào: Dòng đầu tiên là số N. N dòng tiếp theo mỗi dòng có N số.
Ràng buộc: 1≤n≤200; Các phần tử trong ma trận là số dương không quá 10^9;
Định dạng đầu ra: In ra ma trận sau khi sắp xếp
Input:
3
2 7 6
1 2 3
9 8 1
Output:
2 6 7
1 2 3
1 8 9
Xoay ma trận 180 độ
Nộp bàiPoint: 1
Nhập ma trận A là ma trận vuông cấp n. Thực hiện xoay ma trận một góc 180 độ.
INPUT:
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
OUTPUT:
16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1
Ma trận chuyển vị
Nộp bàiPoint: 1
Nhập ma trận A là ma trận vuông cấp n. Thực hiện chuyển ma trận từ hàng thành cột.
INPUT:
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
OUTPUT:
1 5 9 13
2 6 10 14
3 7 1 1 15
4 8 12 16
Xoay ma trận 90 độ
Nộp bàiPoint: 1
Nhập ma trận A là ma trận vuông cấp n. Thực hiện xoay ma trận một góc 90 độ theo chiều kim đồng hồ được ma trận B.
INPUT:
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
OUTPUT
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
Loại bỏ hàng và cột
Nộp bàiPoint: 1
Cho một ma trận cấp M*N chỉ bao gồm các số nguyên dương không quá 1000. Viết chương trình trước hết loại bỏ hàng có tổng lớn nhất sau đó tính toán lại trên ma trận ban đầu và loại tiếp cột có tổng lớn nhất ra khỏi ma trận. Dữ liệu đảm bảo chỉ có 1 hàng có tổng lớn nhất và 1 cột có tổng lớn nhất.
INPUT:
3 3
1 2 4
3 4 0
6 3 5
OUTPUT:
1 4
3 0
Tổng 2 ma trận
Nộp bàiPoint: 1
Viết chương trình cho phép nhập vào hai ma trận A và B có cùng số hàng và số cột là n và m. Tìm ma trận tổng của ma trận A và ma trận B, in ra màn hình.
Định dạng đầu vào:
- Hàng thứ nhất là số hàng và số cột của hai ma trận
- Các hàng tiếp theo là các phần tử của ma trận A và ma trận B
Định dạng đầu ra: Ma trận tổng kết quả
INPUT:
3 3
1 2 3
4 5 6
7 8 9
3 4 5
6 7 8
1 2 3
OUTPUT:
4 6 8
10 12 14
8 10 12
Ma trận đối xứng qua đường chéo chính
Nộp bàiPoint: 1
Cho ma trận vuông n x n. Hãy kiểm tra xem nó có đối xứng qua đường chéo chính hay không.
Input:
Dòng 1: n
n dòng tiếp theo: n số nguyên
Output:
YES nếu đối xứng, NO nếu không
Ví dụ:
Input 1:
3
1 2 3
2 4 5
3 5 6
Output 1:
YES
Input 2:
2
1 0
2 1
Output 2:
NO
Nhân 2 ma trận (mảng 2 chiều cơ bản)
Nộp bàiPoint: 1
Cho ma trận A cỡ NxM, ma trận B cỡ MxP. Hãy tính ma trận tích của A và B.
Định dạng đầu vào: Dòng đầu tiên là 3 số N, M, P: N dòng tiếp theo, mỗi dòng M của ma trận A; M dòng tiếp theo, mỗi dòng P số của ma trận B
Ràng buộc: 1 ≤ N, M, P ≤ 50; Các phần tử trong ma trận là số dương không quá 100000;
Định dạng đầu ra: In ra ma trận tích của A và B
Input:
3 4 5
1 2 3 4
5 6 7 8
9 10 11 12
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
Output:
110 120 130 140 150
246 272 298 324 350
382 424 466 508 550
Đường đi có tổng lớn nhất 1 (mảng 2 chiều nâng cao)
Nộp bàiPoint: 1
Cho ma trận A các số nguyên có N hàng và M cột. Tìm đường đi từ ở [1, 1] tới ô [N, M] sao cho tổng các số trên đường đi là lớn nhất có thể, biết rằng ở mỗi bước chỉ có thể đi từ ô hiện tại xuống ô phía dưới hoặc đi sang phải.
Định dạng đầu bào: Dòng đầu tiên N và M. N dòng tiếp theo mỗi dòng gồm M phần tử.
Ràng buộc: 1 ≤ N,M ≤ 500; 1 ≤ A[i][j] ≤ 10^9
Định dạng đầu ra: In ra đường đi có tổng lớn nhất.
Input:
3 3
1 2 2
3 10 2
5 7 2
Output:
23
Đường đi có tổng lớn nhất 2 (mảng 2 chiều nâng cao)
Nộp bàiPoint: 1
Cho mảng 2 chiều A gồm N hàng và N cột, hãy tìm 1 đường đi từ dòng 1 tới dòng N sao cho các phần tử trên đường đi đó là lớn nhất có thể. Biết rằng ở mỗi bước đi từ ô hiện tại chỉ có thể đi xuống ô dưới bên trái, ô dưới bên phải hoặc ô dưới của ô hiện tại. Hãy tìm 1 đường đi có tổng các số trên đường đi là lớn nhất.
Định dạng đầu vào:
Dòng 1 là N
N dòng tiếp theo mỗi dòng gồm N số
Ràng buộc: 1 <= N <= 100; 1 <= A[i][j] <= 100
Định dạng đầu ra: In ra kết quả của bài toán
Input:
5
5 1 8 6 7
6 0 0 3 7
3 4 1 5 3
9 8 9 2 2
5 3 4 5 3
Output:
33
Đường đi có tổng lớn nhất 3 (mảng 2 chiều nâng cao)
Nộp bàiPoint: 1
Cho mảng 2 chiều A gồm N hàng và N cột, hàng được đánh số từ 1 đến N từ trên xuống dưới, cột được đánh số từ 1 tới N từ trái sang phải, hãy tìm 1 đường đi từ một ô ở cột 1 tới 1 ô ở cột N sao cho các phần tử trên đường đi đó là lớn nhất có thể. Biết rằng ở mỗi bước đi từ ô hiện tại (i, j) chỉ có thể đi sang phải (i, j + 1) hoặc đi xuống ô dưới bên phải (i + 1, j + 1), ô bên trên bên phải(i - 1, j + 1). Hãy tìm 1 đường đi có tổng các số trên đường đi là lớn nhất.
Định dạng đầu vào:
Dòng 1 là N
N dòng tiếp theo mỗi dòng gồm N số
Ràng buộc:
• 1<=N<=100
• -100<=A[][j]<=100
Định dạng đầu ra: In ra đáp án của bài toán
Input:
5
2 -8 2 9 0
-5 6 6 -1 6
3 5 0 2 9
9 -8 9 7 0
-4 6 1 -2 0
Output:
40
Giải thích: Đường đi có tổng lớn nhất : 9 + 6 + 9 + 7 + 9 = 40
Diện tích
Nộp bàiPoint: 1
Cho một ma trận nhị phân cỡ ~N*M~ chỉ bao gồm các số 0, 1. Hãy xác định vùng nhiều số 1 nhất trên ma trận, biết rằng các ô có chung cạnh được coi là cùng miền.
Đầu vào
Dòng đầu tiên là ~N~ và ~M~ tương ứng với số hàng, cột của ma trận. ~N~ dòng tiếp theo mỗi dòng có M số
Giới hạn
~1 \leq N, M \leq 500~
Các phần tử trong ma trận có giá trị 0 hoặc 1.
Đầu ra
In ra diện tích miền có nhiều số 1 nhất
Ví dụ :
Input 01
5 6
0 1 0 1 0 1
0 0 0 1 1 0
0 1 1 0 1 1
0 1 1 0 0 0
0 0 0 0 0 0
Output 01
5
Tìm đường đi
Nộp bàiPoint: 1
Cho một ma trận nhị phân có N hàng và M cột, một con chuột bắt đầu từ ô có tọa độ [s, t] và tìm đường đi tới ô [u, v], biết rằng ở mỗi bước con chuột có thể di chuyển từ ô hiện tại sang các ô chung cạnh với ô hiện tại và số ở ô chung cạnh là số 1.
Bạn chỉ được đi qua 1 ô đúng 1 lần hãy kiểm tra xem con chuột có thể tìm được đường đi tới ô [u, v] hay không ? Dữ liệu đảm bảo 2 ô [s, t] và ô [u, v] đều bằng 1.
Gợi ý : Loang từ ô (u, v) xem ô (s, t) có bị đi qua không, nếu có là sẽ tìm được đường đi
Ví dụ con chuột có thể đi từ ô (1, 1) tới ô (3, 6) theo đường đi được tô màu xanh

Đầu vào
Dòng đầu tiên N và M.
Dòng thứ 2 là 4 số s, t, u , v
N dòng tiếp theo mỗi dòng gồm M phần tử.
Giới hạn
1 ≤ N, M ≤ 100
1 ≤ s, u ≤ N
1 ≤ t, v ≤ M
Đầu ra
In YES nếu con chuột có thể tìm được đường đi, ngược lại in NO.
Ví dụ :
Input 01
3 5
1 1 3 5
1 0 1 0 0
0 1 1 1 1
1 0 0 0 1
Output 01
NO
Hình vuông lớn nhất 2 (mảng cộng dồn 2 chiều)
Nộp bàiPoint: 1
Bạn được cung cấp một ma trận vuông có N dòng và N cột chỉ bao gồm các số hãy tìm hình vuông có kích thước 3 x 3 có tổng lớn nhất trong ma trận.
Đầu vào: Dòng đầu tiên gồm 2 số N và M; N dòng tiếp theo mỗi dòng M số nguyên;
Ràng buộc: 3 <= N, M <= 500:0 <= A[i][j] <= 10^6
Đầu ra: In ra kết quả đáp án của bài toán
Input:
6
4 6 4 5 9 2
8 0 9 0 1 4
3 5 3 6 3 4
5 7 0 9 5 9
4 5 5 9 6 3
9 2 3 6 1 8
Output:
56
Xây dựng tam giác Pascal tính tổ hợp chập K của N (mảng 2 chiều nâng cao - quy hoạch động)
Nộp bàiPoint: 1
Xây dựng tam giác Pascal tính tổ hợp chập K của N với K và N nhập từ bàn phím. Lưu ý kết quả chia dư cho ~10^9+7~
Ràng buộc: ~0 \leq K \leq N \leq 10^3~
In ra kết quả là tổ hợp châp K của N
Input:
10 5
Tính tổ hợp chập 5 của 10
Output:
252
Ma trận xoáy ốc
Nộp bàiPoint: 1
Ma trận xoáy ốc cấp N là ma trận vuông có N*N phần tử. Các số được điền vào ma trận trận theo chiều kim đồng hồ theo thứ tự tăng dần bắt đầu từ 1
INPUT:
3
OUTPUT:
1 2 3
8 9 4
7 6 5
Ma trận xoáy ốc nguyên tố
Nộp bàiPoint: 1
Ma trận xoáy ốc nguyên tố cấp N là ma trận vuông có N*N phần tử. Các số được điền vào ma trận theo chiều kim đồng hồ đều là các số nguyên tố từ nhỏ đến lớn
INPUT:
3
OUTPUT:
2 3 5
19 23 7
17 13 11
Xoáy ốc fibonacci
Nộp bàiPoint: 1
Ma trận xoáy ốc nguyên tố cấp N là ma trận vuông có N*N phần tử. Các số được điền vào ma trận theo chiều kim đồng hồ đều là các số thuộc dãy fibonacci từ nhỏ đến lớn
INPUT:
3
OUTPUT:
0 1 1
13 21 2
8 5 3
Đường đi của quân mã (kỹ thuật loang)
Nộp bàiPoint: 1
Cho bàn cờ vua cỡ N * N, các ô trên bàn cờ có giá trị là 0 hoặc 1. Một con mã xuất phát từ ô (s, t) và muốn di chuyến tới ô (u, v), con mã chỉ có thể di chuyển ở các ô mà tại ô đó có giá trị là 1 và nó có thế di chuyến qua lại 1 ô nhiều lần. Hãy xác định xem con mã có thế tìm được đường đi hay không, dữ liệu đảm bảo ô (s, t) và ô (u, v) đều có giá trị là 1.
Ràng buộc: 1 ≤ N,M ≤ 100; 1 ≤ s,t,u,v ≤ N; 0 ≤ A[i][j] ≤ 1;
In YES nếu con mã có thể tìm được đường đi, ngược lại in NO.
Input:
9
7 5 4 3
1 0 1 0 1 0 1 1 1
1 1 1 1 0 0 0 0 1
1 0 1 1 1 0 1 1 1
1 0 1 0 1 0 0 0 0
0 1 1 0 1 0 1 1 1
1 0 0 0 0 1 1 0 1
1 0 1 0 1 0 1 1 0
0 1 1 0 0 0 0 1 1
0 0 1 1 0 0 0 0 1
Output:
YES
Đường đi của quân tịnh (kỹ thuật loang)
Nộp bàiPoint: 1
Tèo khá thích chơi cờ vua và quân cờ mà Tèo yêu thích chính là quân Tịnh, bây giờ Tèo có một bàn cờ cỡ NxN, trên bàn cờ sẽ có những ô trống và có những ô có vật cản, nhiệm vụ của bạn là hãy xác định xem số lượng ô trên bàn cờ mà quân Tịnh có thế di chuyển tới, biết rằng nó có thể đi qua đi lại 1 ô trống nhiều lần và không thể đi vào ô có vật cản.
Bàn cờ gồm N hàng N cột, mỗi ô là số 1 Tương ứng với vật cản và ô số 0 tương ứng với ô trống. Ban đầu quân Tịnh năm ở vị trí hàng S và cột T và ô (S, T) là ô trống
Định dạng đầu vào:
• Dòng 1 là N, S, T
• N dòng tiếp theo mỗi dòng gồm N số
Ràng buộc:
~5 \leq N<=20~
~0 \leq A[i][j] \leq 1~
Đầu ra:
In ra số lượng ô trên bàn cờ mà quân Tịnh có thể đến được
Ví dụ:
Input:
6 1 3
0 0 0 1 1 0
1 1 1 0 1 0
1 0 0 1 0 1
1 1 1 1 1 0
0 0 1 1 1 0
0 1 1 0 1 0
Output:
6
Đường đi của quân xe (kỹ thuật loang)
Nộp bàiPoint: 1
Tèo khá thích chơi cờ vua và quân cờ mà Tèo yêu thích chính là quân Xe, bây giờ Tèo có một bàn cờ cỡ NxN, trên bàn cờ sẽ có những ở trồng và có những ô có vật cản, nhiệm vụ của bạn là hãy xác định xem số lượng ô trên bàn cờ mà quân Xe có thế di chuyển tới, biết ràng nó có thế đi qua đi lại 1 ô trống nhiều lần và không thể đi vào ô có vật cản.
Bàn cờ gồm N hàng N cột, mỗi ô là số 1 tương ứng với vật cản và ô số 0 tương ứng với ô trồng. Ban đầu quân Xe năm ở vị trí hàng 5 và cột T và ô (5, T) là ô trống
Định dạng đầu vào:
• Dòng 1 là N, S, T
• N dòng tiếp theo mỗi dòng gồm N số
Ràng buộc:
~5 \leq N<=20~
~0 \leq A[i][j] \leq 1~
Đầu ra:
In ra số lượng ô trên bàn cờ mà quân Xe có thể đến được
Ví dụ:
Input:
7 4 6
1 1 1 0 0 1 0
1 1 0 0 0 1 1
0 1 0 0 0 0 0
1 0 1 0 1 0 1
1 0 1 1 1 1 0
1 1 0 0 1 0 1
0 0 0 0 1 1 0
Output:
12
Đếm đảo 1 (kỹ thuật loang)
Nộp bàiPoint: 1
Cho ma trận nhị phân gồm N hàng và M cột chỉ bao gồm các số 0 và 1. Hãy đếm số lượng miền các số 1 trong ma trận, các ô số 1 được coi là cùng miền nếu chúng có chung cạnh.
Ràng buộc: 1 ≤ N,M ≤ 50
Input 01:
4 7
0 1 1 0 1 1 0
1 1 1 1 1 1 1
1 0 0 0 0 1 1
1 1 0 1 0 0 0
Output 01:
2
Input 01:
8 8
1 1 0 1 1 1 1 0
0 1 1 1 0 0 0 1
1 1 0 0 0 0 1 1
0 1 0 1 0 0 1 1
1 0 0 1 0 0 0 1
0 1 0 1 1 1 1 0
0 0 0 0 1 0 1 1
1 0 0 0 0 0 0 0
Output 02:
6
Đếm đảo 2 (kỹ thuật loang)
Nộp bàiPoint: 1
Cho ma trận nhị phân gồm N hàng và M cột chỉ bao gồm các số 0 và 1. Hãy đếm số lượng miền các số 1 trong ma trận, các ô số 1 được coi là cùng miền nếu chúng có chung đỉnh.
Ràng buộc: 1 ≤ N,M ≤ 50
Input 01:
3 3
1 0 1
0 0 1
1 1 0
Output 01:
2
Input 01:
8 8
1 1 0 1 1 1 1 0
0 1 1 1 0 0 0 1
1 1 0 0 0 0 1 1
0 1 0 1 0 0 1 1
1 0 0 1 0 0 0 1
0 1 0 1 1 1 1 0
0 0 0 0 1 0 1 1
1 0 0 0 0 0 0 0
Output 02:
2