题目描述
我国古籍很早就记载着
2 9 4
7 5 3
6 1 8
这是一个三阶幻方。每行每列以及对角线上的数字相加都相等。
下面考虑一个相反的问题。
可不可以用 1~9 的数字填入九宫格,使得:每行每列每个对角线上的数字和都互不相等呢?
这应该能做到。
比如:
9 1 2
8 4 3
7 5 6
你的任务是搜索所有的三阶反幻方。并统计出一共有多少种。旋转或镜像算同一种。
比如:
9 1 2 7 8 9 2 1 9
8 4 3 5 4 1 3 4 8
7 5 6 6 3 2 6 5 7
输出
输出一个整数表示答案

解题思路:
旋转/4,镜像/2,所以/8

代码如下:

#include <iostream>
#include <algorithm>
using namespace std;int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};bool check() {int r1 = a[0] + a[1] + a[2];int r2 = a[3] + a[4] + a[5];int r3 = a[6] + a[7] + a[8];int r4 = a[0] + a[3] + a[6];int r5 = a[1] + a[4] + a[7];int r6 = a[2] + a[5] + a[8];int r7 = a[0] + a[4] + a[8];int r8 = a[2] + a[4] + a[6];if (r1 != r2 && r1 != r3 && r1 != r4 && r1 != r5 && r1 != r6 && r1 != r7 && r1 != r8 &&r2 != r3 && r2 != r4 && r2 != r5 && r2 != r6 && r2 != r7 && r2 != r8 &&r3 != r4 && r3 != r5 && r3 != r6 && r3 != r7 && r3 != r8 &&r4 != r5 && r4 != r6 && r4 != r7 && r4 != r8 &&r5 != r6 && r5 != r7 && r5 != r8 &&r6 != r7 && r6 != r8  && r7 != r8) {return true;} elsereturn false;
}
int ans;int main() {do {if (check())ans++;} while (next_permutation(a, a + 9));cout << ans / 8 << endl;return 0;
}

[蓝桥杯2016决赛]反幻方-next_permutation枚举相关推荐

  1. [蓝桥杯2017决赛]图书排列-next_permutation枚举

    题目描述 将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置. 请计算一共有多少种不同的排列方案. 输出 输出一个整数表示答案 代码如下: #include <iostr ...

  2. [蓝桥杯2016初赛]寒假作业-next_permutation枚举

    暴搜代码(耗时较长,要90s左右)如下: #include <iostream> using namespace std; const int N = 15; int a[N]; bool ...

  3. 1265: [蓝桥杯2015决赛]四阶幻方

    题目链接:1265: [蓝桥杯2015决赛]四阶幻方 题目描述 把1~16的数字填入4x4的方格中,使得行.列以及两个对角线的和都相等,满足这样的特征时称为:四阶幻方. 四阶幻方可能有很多方案.如果固 ...

  4. 蓝桥杯2015决赛-方格填数-枚举 or dfs

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

  5. [蓝桥杯2016决赛]七星填数-next_permutation枚举

    题目描述 如下图所示: 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏.要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字.请计算其它位置要填充的数字,答案唯一. 填好后,请提 ...

  6. [蓝桥杯2016决赛]平方末尾-数论,枚举

    题目描述 能够表示为某个整数的平方的数字称为"平方数".比如,25,64 虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数. 因为平方数的末位只可能是:[0, 1, ...

  7. [蓝桥杯2016决赛]一步之遥-枚举

    题目描述 从昏迷中醒来,小明发现自己被关在X星球的废矿车里.矿车停在平直的废弃的轨道上. 他的面前是两个按钮,分别写着"F"和"B". 小明突然记起来,这两个按 ...

  8. 1265: [蓝桥杯2015决赛]四阶幻方 C/C++

    题目描述: 把1~16的数字填入4x4的方格中,使得行.列以及两个对角线的和都相等,满足这样的特征时称为:四阶幻方. 四阶幻方可能有很多方案.如果固定左上角为1,请计算一共有多少种方案. 比如: 1  ...

  9. [蓝桥杯2015决赛]四阶幻方

    题目描述 把1~16的数字填入4x4的方格中,使得行.列以及两个对角线的和都相等,满足这样的特征时称为:四阶幻方. 四阶幻方可能有很多方案.如果固定左上角为1,请计算一共有多少种方案. 比如: 1 2 ...

最新文章

  1. esp32 coredump分析
  2. 使用Python requests post上传图片及示例demo
  3. ubuntu中显示本机的gpu_Ubuntu下实时查看Nvidia显卡显存占用情况和GPU温度
  4. [Linux系统] VMware克隆CentOS7,解决网络配置问题
  5. 【Linux开发】Linux启动脚本设置
  6. 推荐学习网页标准的20个好去处
  7. 17-正交矩阵和Gram-Schmidt正交化
  8. 150+ Web 2.0 工具和相关资源
  9. 高一物理必修第二册公式整理
  10. rest-assured一些使用心得
  11. android加速度传感器转为线性速度,如何在android的驱动程序中对加速度传感器的数据进行方向和坐标的转...
  12. ES6 --》字符串与数值新增方法
  13. 嵌入式linux数控系统,关于ARM+DSP嵌入式Linux数控系统设计.pdf
  14. 【C语言】C语言库函数
  15. 要知道宇宙有多少星球,比数清地球上的沙子数量还要困难!
  16. dmpython部署操作轨迹
  17. win10 Microsoft Edge浏览器崩溃, Microsoft Edge 提示 网页无限次打开,直至电脑卡死
  18. AI: Python 的Matplotlib 绘图算法库 介绍。
  19. 优化算法:人工蜂鸟算法AHA
  20. vue服务端渲染——基础

热门文章

  1. T-SQL编程基础之三:游标(Cursor)编程
  2. Android之提示Could not find com.android.support:appcompat-v7:25.3.1.
  3. Android Studio之导入安卓项目gradle编译出现问题分析日志思路
  4. Github怎么删除之前的项目
  5. sklearn 线性回归_使用sklearn库做线性回归拟合
  6. php html标签自定义属性,详解H5的自定义属性data-*
  7. php post授权编写,php模拟post行为代码总结(POST方式不是绝对安全)
  8. java添加事件监听器_Java事件监听器的四种实现方式
  9. 一个程序如何连接到外网_如何开发制作小程序?做一个电商带直播小程序
  10. 大大小小的正六边形嵌套,就会形成像万花筒般有趣的视觉图形!