第七届蓝桥杯试题c/c++A组方格填数 回溯法
方格填数
如下的10个格子
+--+--+--+
| | | |
+--+--+--+--+
| | | | |
+--+--+--+--+
| | | |
+--+--+--+
(如果显示有问题,也可以参看【图1.jpg】)
填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)
一共有多少种可能的填数方案?
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
回溯法解决的源代码如下:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int a[3][4];
bool part(int x,int y)
{
for(int i=0;i<=x;i++)
{
for(int j=0;j<4;j++)
if(a[i][j]==a[x][y]&&!(i==x&&j==y))return false;
}
if(x-1>=0)
{
if(a[x-1][y]==a[x][y])return false;
if(abs(a[x-1][y]-a[x][y])==1)return false;
}
if(y-1>=0)
{
if(a[x][y-1]==a[x][y])return false;
if(abs(a[x][y-1]-a[x][y])==1)return false;
}
if(x-1>=0&&y-1>=0){
if(abs(a[x-1][y-1]-a[x][y])==1)return false;
if(a[x-1][y-1]==a[x][y])return false;
}
if(x-1>=0&&y+1<4){
if(abs(a[x-1][y+1]-a[x][y])==1)return false;
if(a[x-1][y+1]==a[x][y])return false;
}
return true;
}
int main()
{
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
a[i][j]=99;//取一个不可能取到的数作初值
a[0][0]=99;a[2][3]=99;
int c[11];
for(int i=0;i<11;i++)c[i]=0;
int k=1;int sum=0;
while(k>=1)
{
while(c[k]<10)
{
int x=k/4;int y=k%4;
a[x][y]=c[k]++;
if(part(x,y)&&k==10)
{
sum++;
}
else if(part(x,y)&&k<10)k++;
}
a[k/4][k%4]=99;
c[k]=0;
k--;
}
cout<<sum<<endl;
return 0;
}
第七届蓝桥杯试题c/c++A组方格填数 回溯法的更多相关文章
- 2016第七届蓝桥杯C/C++语言A组
一:问题: 某君新认识一网友.当问及年龄时,他的网友说:“我的年龄是个2位数,我比儿子大27岁,如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄” 请你计算:网友的年龄一共有多少种可能情况? 提 ...
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛
/* 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 煤球数目(结果填空) 煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形) ...
- 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告
2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...
- 2016年第七届蓝桥杯c/c++省赛B组
2016年第七届蓝桥杯c/c++省赛B组 声明:以下答案是我自己做的.不能保证正确,须要參考正确答案的请到其它地方找. 第一题 :煤球数目 题目叙述: 有一堆煤球,堆成三角棱锥形.详细: 第一层放1个 ...
- 第七届蓝桥杯个人赛省赛--C语言B组
题目一 煤球数目 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球? 请 ...
- 算法笔记_212:第七届蓝桥杯软件类决赛真题(Java语言B组)
目录 1 愤怒小鸟 2 反幻方 3 打靶 4 路径之谜 5 碱基 6 圆圈舞 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 愤怒小鸟 愤怒小鸟 X星球愤怒的小鸟喜欢撞火车! 一根平直的铁轨上两火车 ...
- 第七届蓝桥杯JavaC组省赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.有奖竞猜 题目描述 小明很喜欢猜谜语. 最近,他被邀请参加了X星球的猜谜活动. 每位选手开始的时候都被发给777个电子币. 规则是:猜 ...
- java实现第七届蓝桥杯冰雹数
题目8.冰雹数 题目描述 任意给定一个正整数N, 如果是偶数,执行: N / 2 如果是奇数,执行: N * 3 + 1 生成的新的数字再执行同样的动作,循环往复. 通过观察发现,这个数字会一会儿上升 ...
- 算法笔记_213:第七届蓝桥杯软件类决赛部分真题(Java语言C组)
目录 1 平方末尾 2 七星填数 3 打印数字 4 赢球票 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 平方末尾 平方末尾 能够表示为某个整数的平方的数字称为“平方数” 比如,25,64 虽然无 ...
随机推荐
- Java EE javax.servlet中的ServletConfig接口
ServletConfig接口 public interface ServletConfig 实现类:GenericServlet.HttpServlet 一.介绍 一个供servlet容器使用配置对 ...
- 11-Perl 运算符
1.Perl 运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,如: 3+2=5.Perl 语言内置了丰富的运算符,我们来看下常用的几种: 算术运算符,比较运算符,逻辑运算符,赋值运算符,位 ...
- mysql 8.x 集群出现:Last_IO_Error: error connecting to master 'repl@xxx:3306' - retry-time: 60 retries: 1
网上的经验:网络不同,账号密码不对,密码太长,密码由 # 字符:检查MASTER_HOST,MASTER_USER,MASTER_PASSWORD(不知道 MASTER_LOG_FILE 有没有影响) ...
- java lesson15Homework
package lesson15; /** * 1. 使用ArrayList存储整型元素,并对元素进行升序输出 */ import java.util.ArrayList; import java.u ...
- c++ 使用 gsoap 调用 WebService 中文乱码
c++ 使用 gsoap 调用 WebService 中文乱码 问题产生: 使用gsoap时,如果WebService服务端及客户调用端都使用 C++ , 再传递中文时不会存在乱码问题, 当客户 ...
- O062、NFS Volume Provider(Part I)
参考https://www.cnblogs.com/CloudMan6/p/5683352.html cinder-volume 支持多种 volume provider ,前面我们一直使用的是默 ...
- ES6新增内容总结
ES6新增内容有:1,模块化思想.2,关于变量let和const.3,解构赋值.4,字符串的扩展.5,函数的扩展.6,箭头函数.7,继承apply的用法 以下就是详解: 1:模块化思想 非模块化有命名 ...
- vue 数据驱动原理,响应式 原理?
Object.defineProperty(obj,"name",{ get(){ console.log("被访问了") return obox.innerH ...
- JSR-303
JSR-303是java标准的验证框架,已有的实现由 Hibernate validator 定义的注解验证bean属性: 空检查 @Null 验证对象是否为空 @NotNull 验证对象不为空 @N ...
- <(* ̄▽ ̄*)/低碳生活管理系统
首次在博客园发布文章,都是个人理解,有很多不足,多多包涵. 下面是对做过的作业低碳生活管理系统的剖析: 一:(建类) 二:(在Program[或自己命名的类]里调用SQL命名空间) 三:(Main方法 ...