Trong bài toán này, chúng ta được cho một số nguyên n sao cho có n đường thẳng đứng và n đường thẳng nằm ngang được đặt sao cho có n2 giao điểm giữa các đường thẳng này. Nhiệm vụ của chúng ta là tìm tổng số cách có thể đặt 4 vật phẩm trên các giao lộ này ở
sao cho không có hàng và cột nào chứa nhiều hơn một mục.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào
n=4
Đầu ra
24
Giải thích
Để giải quyết vấn đề này, chúng ta sẽ phải chọn 4 hàng ngang từ n dòng sẽ có các mục sẽ là nC4. Bây giờ, mỗi hàng ngang có n đường thẳng đứng, do đó, sẽ có n cách để đặt một mục trong hàng ngang được chọn đầu tiên. Sau đó, chúng tôi sẽ chuyển đến dòng ngang được chọn tiếp theo, nơi sẽ có n-1 vị trí có thể. Và nó theo cùng một cách thứ ba có thể được đặt trong n-2 và thứ hai trong n-3 cách. Vì vậy, tổng số wats sẽ là n C4 * n * (n-1) * (n-2) * (n-3)
Chương trình hiển thị việc triển khai thuật toán,
Ví dụ
#include <iostream>
using namespace std;
long long placeItems(int n) {
return (1LL * (1LL *
((n) * (n - 1) * (n - 2) * (n - 3)) / (4 * 3 * 2 * 1)) *
((1LL * (n) * (n - 1) * (n - 2) * (n - 3))));
}
int main() {
int n = 4;
cout<<"The number of way is which 4 items can be placed in the intersection of "<<n;
cout<<" lines vertically and horizotally are "<<placeItems(n);
return 0;
} Đầu ra
The number of way is which 4 items can be placed in the intersection of 4 lines vertically and horizotally are 24