拉丁矩陣問題

2021-07-25 14:42:29 字數 508 閱讀 3381

拉丁矩陣問題現有

n種不同形狀的寶石,每種寶石有足夠多顆。欲將這些寶石排列成m行

n列的乙個矩陣,

m<=n

,使矩陣中每一行和每一列的寶石都沒有相同的形狀。試設計乙個演算法,計算出對於給定的m和

n,有多少種不同的寶石排列方案。

輸入:

3 3

輸出: 12

解:

拉丁矩陣問題:

首先給矩陣進行賦值,每一行賦值都不相同

此時每一行已經不同了,

對每一行進行全排列的過程 中,每一行一定不會出項相同的情況

所以要對每一列進行判斷是否存在相同的情況。

如果滿足每一列都不相同,則此時的矩陣滿足條件,方案數加1.

#include int a[100][100];

int m,n;

int count;

bool ok(int x,int y)

{ for(int i=0;i

拉丁矩陣問題

問題描述 現有n種不同形狀的寶石,每種寶石有足夠多顆。欲將這些寶石排列成m行n列的乙個矩陣,m n,使矩陣中每一行和每一列的寶石都沒有相同形狀。試設計乙個演算法,計算出對於給定的m和n,有多少種不同的寶石排列方案。演算法設計 對於給定的m和n,計算出不同的寶石排列方案數。資料輸入 第一行有2個正整數...

拉丁矩陣問題

include include include using namespace std const int max 50 int n,m int board max max 考察當前列是否有相同形狀的寶石 bool ok int r,int c,int k return true long int ...

拉丁矩陣問題

問題描述 現有n 種不同形狀的寶石,每種寶石有足夠多顆。將這些寶石排列成m行n 列的乙個矩陣,m n,使矩陣中每一行和每一列的寶石都沒有相同形狀。設計乙個演算法,計算出對於給定的m和n,有多少種不同的寶石排列方案。程式設計任務 對於給定的m和n,計算出不同的寶石排列方案數。資料輸入 input.tx...