宫格填数问题(暴力)

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));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值