[蓝桥杯2015决赛]方格填数

题目描述

在2行5列的格子中填入1到10的数字。
要求:相邻的格子中的数,右边的大于左边的,下边的大于上边的。
如下图所示的2种,就是合格的填法。
请你计算一共有多少种可能的方案。


image

输出

请输出该整数,不要输出任何多余的内容

#include<bits/stdc++.h>
int map[3][6];
int flag[15],sum[0];
int check()
{
    int i,j;
    for(i=0;i<2;i++)
        for(j=0;j<5;j++)
    {
    if((map[i][j]>map[i][j+1]) || (map[i][j]>map[i+1][j]))
        return 0;
    }
    return 1;
}
void dfs(int count)
{
    int i,j;
    if (count==10)
    {
        if(check())
            sum++;
        return;
    }
    for(i=1;i<=10;i++){
        if(!flag[i])
        {
            flag[i]=1;
            map[count/5][count%5]=i;
            dfs(count+1);
            flag[i]=0;
        }
    }

}
int main ()
{
    map[0][5]=map[1][5]=100;
    for(int i=0;i<5;i++)
        map[2][i]=100;
    dfs(0);
    printf("%d\n",sum);
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1标题:分机号 X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数...
    就这样吧嘞阅读 351评论 0 0
  • 方格填数 填入0~9的数字。要求:连续的两个数字不能相邻。 (左右、上下、对角都算相邻) 一共有多少种可能的填数方...
    掌灬纹阅读 657评论 0 2
  • 问题描述 方格填数 如下的10个格子 填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)...
    crishawy阅读 908评论 0 0
  • 题目1:奖券数目 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。虽然这些说法纯属无稽之谈,...
    你要好好学习呀阅读 1,939评论 0 26
  • 数组中重复的数字(一维数组) 问题:在一个长度为长度为n的数组里的所有数字都在0-n-1之间。找出任意一个重复的数...
    Drama_Du阅读 1,154评论 0 0