1-12十二个数字分别填入3*4的十二格方框内,要求从左至右的数字是从小到大排列,从上至下的数字也是从小到大排列,问:一共有多少种排列方式。
思路是写程序暴力,1一定在左上,12一定在右下暴力2~11即可,共10!
#include <bits/stdc++.h>
using namespace std;
int main(void) {
int a[13];
for (int i = 0; i < 13; i++) a[i] = i;
int sum=0;
do {
if(a[1] > a[2] || a[2] > a[3] || a[3] > a[4])continue;
if(a[5] > a[6] || a[6] > a[7] ||a[7] > a[8])continue;
if(a[9] > a[10] ||a[10] > a[11]|| a[11] > a[12])continue;
if(a[1] > a[5] || a[5] > a[9] )continue;
if(a[2] > a[6] || a[6] > a[10])continue;
if(a[3] > a[7] || a[7] > a[11])continue;
if(a[4] > a[8] || a[8] > a[12])continue;
sum++;
} while (next_permutation(a + 2, a + 12));