Hướng dẫn giải của PHẦN TỬ BẢNG HAI CHIỀU (PTB.CPP)


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

1. Đề bài tóm tắt

Cho một bảng số (mảng hai chiều) gồm m hàng và n cột (1 <= m, n <= 1000). Các hàng được đánh số từ 1 đến m, các cột được đánh số từ 1 đến n. Cho trước tọa độ hàng x và cột y, hãy in ra giá trị của ô nằm ở vị trí (x, y) trong bảng.

  • Đầu vào (INPUT):

    • Dòng 1: Hai số nguyên dương m, n.

    • m dòng tiếp theo: Mỗi dòng chứa n số nguyên mô tả bảng số.

    • Dòng cuối cùng: Hai số nguyên x, y (1 <= x <= m; 1 <= y <= n).

  • Đầu ra (OUTPUT):

    • In ra giá trị của phần tử nằm ở hàng x, cột y.

2. Phân tích bài toán

  • Khai báo mảng 2 chiều tĩnh a[1005][1005] với chỉ số bắt đầu từ 1.

  • Nhập số hàng m và số cột n của bảng.

  • Sử dụng 2 vòng lặp lồng nhau với chỉ số i chạy từ 1 đến m và j chạy từ 1 đến n để nhập từng phần tử a[i][j] vào bảng.

  • Nhập tọa độ x và y.

  • In ra trực tiếp giá trị a[x][j] (tại vị trí hàng x, cột y).

3. Độ phức tạp

  • Thời gian (Time Complexity): O(m x n) để nhập toàn bộ bảng số, truy xuất phần tử O(1).

  • Không gian (Space Complexity): O(m x n) do sử dụng mảng 2 chiều tĩnh kích thước tối đa 1005 x 1005.

4. Mã nguồn C++ minh họa

#include <bits/stdc++.h>
using namespace std;

// Khai bao mang 2 chieu tinh voi chi so bat dau tu 1
int a[1005][1005];

int main() {
    // Toi uu toc do nhap xuat
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int m, n;
    cin >> m >> n;

    // Nhap mang 2 chieu (chi so chay tu 1)
    for (int i = 1; i <= m; i++) {
        for (int j = 1; j <= n; j++) {
            cin >> a[i][j];
        }
    }

    int x, y;
    cin >> x >> y;

    // In ra gia tri phan tu tai hang x, cot y
    cout << a[x][y];

    return 0;
}

5. Ví dụ mô phỏng

Input:
3 5
1 6 2 4 1
6 3 -9 7 2
-6 5 0 1 4
3 2
Quá trình xử lý:
  • Bảng số có 3 hàng và 5 cột.
  • Tọa độ cần truy xuất: hàng x = 3, cột y = 2.
  • Phần tử nằm ở hàng 3, cột 2 là: a[3][2] = 5.
Output:
5

Đang tải...