cpp-338Đọc toàn bộ đề miễn phí

Chuyển vị ma trận

Chuyển vị là phép biến đổi biến hàng thành cột: phần tử ở hàng i, cột j của ma trận gốc

C++Cơ bản10 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

linear-algebramatrixtransposeentry-ramp

Kiến thức tiên quyết: cpp-basics, arrays.

Nội dung đề bài

Mô tả bài toán

Chuyển vị là phép biến đổi biến hàng thành cột: phần tử ở hàng i, cột j của ma trận gốc sẽ nằm ở hàng j, cột i của ma trận kết quả. Nếu ma trận gốc có n hàng, m cột thì ma trận chuyển vị có m hàng, n cột — kích thước cũng bị đổi chỗ chứ không chỉ các phần tử.

Yêu cầu

Cho ma trận số nguyên A gồm n hàng và m cột. Hãy in ra ma trận chuyển vị AT gồm m hàng và n cột, trong đó AT[j][i] = A[i][j].

Quy ước nộp bài

Nộp chương trình solution.cpp đọc dữ liệu từ stdin và in kết quả ra stdout. In đúng m dòng, mỗi dòng n số nguyên cách nhau một dấu cách, không in thêm gì khác.

Input

  • Dòng đầu tiên: hai số nguyên n và m (1 <= n, m <= 4).
  • n dòng tiếp theo: mỗi dòng m số nguyên là một hàng của A, đọc từ trái sang phải.

Output

In ra m dòng, mỗi dòng n số nguyên là một hàng của ma trận chuyển vị. Hai số trên cùng một dòng cách nhau đúng một dấu cách, không có dấu cách ở cuối dòng.

Ràng buộc

  • |A[i][j]| <= 1000.
  • Thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

2 3
1 2 3
4 5 6

Output

1 4
2 5
3 6

Ví dụ 2

Input

1 1
9

Output

9

Giải thích

Với dữ liệu vào:

ma trận gốc có 2 hàng, 3 cột nên chuyển vị có 3 hàng, 2 cột:

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Góp ý & báo lỗi bài tập

Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.

Nhóm Zalo