美文网首页
[蓝桥杯2016初赛]方格填数

[蓝桥杯2016初赛]方格填数

作者: Vincy_ivy | 来源:发表于2020-02-23 10:47 被阅读0次

题目描述

如下的10个格子,填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)一共有多少种可能的填数方案?


image

输出

请填写表示方案数目的整数。

代码

又是一道dfs题,因为是填空题如果实在想不出可用暴搜

#include<bits/stdc++.h>
using namespace std;

int a[4][5],visit[10];
int dx[4]={-1,-1,-1,0};
int dy[4]={0,1,-1,-1};
int sum;

bool check(int x,int y,int n){
    for(int i=0;i<4;i++){
        int xx=x+dx[i];
        int yy=y+dy[i];
        if(xx<3&&xx>=0&&yy>=0&&yy<4){
            if(abs(a[xx][yy]-n)==1)
                return false;
        }
    }
    return true;
}

void dfs(int x,int y){
    if(x==2&&y==3){
        sum++;
        return;
    }
    for(int i=0;i<10;i++){
        if(visit[i]==0&&check(x,y,i)){
            visit[i]=1;
            a[x][y]=i;
            if(y+1<4)
                dfs(x,y+1);
            else
                dfs(x+1,0);//另起一行
            visit[i]=0;
        }
    }
}

int main(){
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
            a[i][j]=-20;
    dfs(0,1);
    cout<<sum;
    return 0;
}

相关文章

  • [蓝桥杯2016初赛]方格填数

    题目描述 如下的10个格子,填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少...

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

    题目描述 在2行5列的格子中填入1到10的数字。要求:相邻的格子中的数,右边的大于左边的,下边的大于上边的。如下图...

  • 蓝桥杯填方格-填数问题

    问题描述 方格填数 如下的10个格子 填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)...

  • [蓝桥杯2016初赛]交换瓶子

    题目描述 有N个瓶子,编号 1 ~ N,放在架子上。比如有5个瓶子:2 1 3 5 4,要求每次拿起2个瓶子,交换...

  • [蓝桥杯2016初赛]平方怪圈

    题目描述 如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理。如此一来,你...

  • [蓝桥杯2016初赛]报纸页数

    参考博客 题目描述 X星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已。每张纸印有4版。比如,...

  • [蓝桥杯2016初赛]剪邮票

    题目描述 如下图, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不...

  • 方格填数

    原博 方格填数 如下的10个格子填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有...

  • dfs_第七届蓝桥杯方格填数

    方格填数 填入0~9的数字。要求:连续的两个数字不能相邻。 (左右、上下、对角都算相邻) 一共有多少种可能的填数方...

  • 蓝桥杯 方格分割

    标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。 如图:p1.png, p2...

网友评论

      本文标题:[蓝桥杯2016初赛]方格填数

      本文链接:https://www.haomeiwen.com/subject/xkgdqhtx.html