zoukankan      html  css  js  c++  java
  • 方格填数


    方格填数

    如下的10个格子
    +--+--+--+
    | | | |
    +--+--+--+--+
    | | | | |
    +--+--+--+--+
    | | | |
    +--+--+--+

    (如果显示有问题,也可以参看【图1.jpg】)

    填入0~9的数字。要求:连续的两个数字不能相邻。
    (左右、上下、对角都算相邻)

    一共有多少种可能的填数方案?

    请填写表示方案数目的整数。
    注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

    public class Main {
        static int count;
        public static void main(String[] args) {
            int[] a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
            dfs(a, 0);
            System.out.println(count);
        }
        private static void dfs(int[] a, int k) {
            if(k == a.length - 1) {
                if(Math.abs(a[0] - a[1]) != 1 && Math.abs(a[0] - a[3]) != 1 && Math.abs(a[0] - a[4]) != 1 && Math.abs(a[0] - a[5]) != 1
                        && Math.abs(a[1] - a[2]) != 1 && Math.abs(a[1] - a[4]) != 1 && Math.abs(a[1] - a[5]) != 1 && Math.abs(a[1] - a[6]) != 1
                        && Math.abs(a[2] - a[5]) != 1 && Math.abs(a[2] - a[6]) != 1
                        && Math.abs(a[3] - a[4]) != 1 && Math.abs(a[3] - a[7]) != 1 && Math.abs(a[3] - a[8]) != 1
                        && Math.abs(a[4] - a[5]) != 1 && Math.abs(a[4] - a[7]) != 1 && Math.abs(a[4] - a[8]) != 1 && Math.abs(a[4] - a[9]) != 1
                        && Math.abs(a[5] - a[6]) != 1 && Math.abs(a[5] - a[8]) != 1 && Math.abs(a[5] - a[9]) != 1
                        && Math.abs(a[6] - a[9]) != 1
                        && Math.abs(a[7] - a[8]) != 1
                        && Math.abs(a[8] - a[9]) != 1) {
                    System.out.println("  " + a[0] + " " + a[1] + " " + a[2]);
                    System.out.println(a[3] + " " + a[4] + " " + a[5] + " " + a[6]);
                    System.out.println(a[7] + " " + a[8] + " " + a[9]);
                    count ++;
                    return;
                }
            }
            for(int i = k; i < a.length; i ++) {
                {
                    int x = a[k];
                    a[k] = a[i];
                    a[i] = x;
                }
                dfs(a, k + 1);
                {
                    int x = a[k];
                    a[k] = a[i];
                    a[i] = x;
                }
            }
        }
    }
  • 相关阅读:
    tfrecord
    数据挖掘模型中的IV和WOE详解
    GBDT
    tensorflow笔记 :常用函数说明
    GAN
    牛客挑战赛 39 牛牛与序列 隔板法 容斥 dp
    4.19 省选模拟赛 跳跃 倍增 二分 线段树 建图
    牛客挑战赛39 牛牛的等差数列
    luogu P6224 [BJWC2014]数据 KD-tree 标准板子 重构+二维平面内最近最远距离查询
    牛客挑战赛39 D 牛牛的数学题 NTT FMT FWT
  • 原文地址:https://www.cnblogs.com/jizhidexiaobai/p/8576031.html
Copyright © 2011-2022 走看看