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

Đếm số đường đi trong lưới chỉ đi sang phải và xuống dưới

Đây là bài quy hoạch động trên lưới đầu tiên: mỗi ô trong lưới nhận đóng góp từ ô phía trên

C++Cơ bản12 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ủ đề

dynamic-programminggridcountingentry-ramp

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

Nội dung đề bài

Mô tả bài toán

Đây là bài quy hoạch động trên lưới đầu tiên: mỗi ô trong lưới nhận đóng góp từ ô phía trên và ô bên trái, nên bảng hai chiều được điền theo thứ tự từ trên xuống dưới, từ trái sang phải. Hàng đầu và cột đầu là điều kiện đầu, vì từ đó chỉ có đúng một cách đi tới.

Yêu cầu

Cho lưới gồm n hàng và m cột. Xuất phát từ ô góc trên bên trái, mỗi bước chỉ được đi sang ô bên phải hoặc xuống ô bên dưới. Hãy đếm số đường đi khác nhau để tới ô góc dưới bên phải.

Quy ước nộp bài

Nộp tệp solution.cpp đọc n và m từ stdin và ghi kết quả ra stdout. Chỉ in một số nguyên trên một dòng, không kèm chữ hay dấu cách thừa.

Input

  • Một dòng duy nhất chứa hai số nguyên n và m cách nhau bởi dấu cách

(1 <= n, m <= 15).

Output

  • Một số nguyên trên một dòng là số đường đi. Với n = m = 1 thì đáp án là 1 vì đã đứng

sẵn ở đích.

Ràng buộc

  • Chỉ được đi sang phải hoặc xuống dưới, không đi ngược lại và không đi chéo.
  • Thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

2 2

Output

2

Ví dụ 2

Input

3 3

Output

6

Giải thích

Lưới 3 x 3 có 6 đường đi khác nhau từ góc trên bên trái tới góc dưới bên phải, nên in ra:

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.

Nhóm Zalo