题目描述

观察如下的算式:9213 x 85674 = 789314562
左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。
而乘积恰好也是用到了1~9的所有数字,并且每个1次。
请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个?

注意:

1. 总数目包含题目给出的那个示例。
2. 乘数和被乘数交换后作为同一方案来看待。

输出

输出一个整数表示答案

代码如下:

#include <iostream>
using namespace std;
const int N = 12;
bool vis[N];
int ans = 0;
int book[N];bool check2() {for (int i = 1; i <= 9; i++) {if (book[i] != 1) {for (int i = 1; i <= 9; i++) {book[i] = 0;}return false;}}for (int i = 1; i <= 9; i++) {book[i] = 0;//这一步容易忽略,就因为忽略了这个,耽误了我30分钟........}return true;
}bool check(int suma, int sumc) {long long sum = (long long)suma * sumc;while (sum) {book[sum % 10]++;sum = sum / 10;}if (check2()) {return true;}return false;
}void dfs_c(int u, int suma, int sumc) {if (u > 9) {return;}if (check(suma, sumc) && sumc != 0) {ans++;}for (int i = 1; i <= 9; i++) {if (!vis[i]) {vis[i] = true;dfs_c(u + 1, suma, sumc * 10 + i);vis[i] = false;}}
}void dfs_a(int u, int suma) {dfs_c(u, suma, 0);for (int i = 1; i <= 9; i++) {if (!vis[i]) {vis[i] = true;dfs_a(u + 1, suma * 10 + i);vis[i] = false;}}
}int main() {dfs_a(0, 0);cout << ans / 2 << endl;//乘数和被乘数交换后作为同一方案来看待,所以要除2return 0;
}
#include <iostream>
using namespace std;
typedef long long LL;
const int N = 15;
bool vis[N];
int ans;bool check_2(LL sumb) {bool st[N];for (int i = 1; i <= 9; i++) {st[i] = 0;}while (sumb) {st[sumb % 10] = true;sumb = sumb / 10;}bool flag = false;for (int i = 1; i <= 9; i++) {if (!st[i]) {return false;}}return true;
}bool check_1(int suma, int sumc) {LL sumb = (LL)suma * sumc;if (check_2(sumb)) {return true;}return false;
}void dfs_c(int u, int suma, int sumc) {if (u > 9) {return ;}if (check_1(suma, sumc) ) {ans++;return ;}for (int i = 1; i <= 9; i++) {if (!vis[i]) {vis[i] = true;dfs_c(u + 1, suma, sumc * 10 + i);vis[i] = false;}}
}void dfs_a(int u, int suma) {dfs_c(u, suma, 0);for (int i = 1; i <= 9; i++) {if (!vis[i]) {vis[i] = true;dfs_a(u + 1, suma * 10 + i);vis[i] = false;}}
}int main() {dfs_a(0, 0);cout << ans / 2 << endl;return 0;
}

蓝桥杯2017初赛-9数算式-dfs相关推荐

  1. 蓝桥杯2017初赛:迷宫 (dfs搜索)

    [蓝桥杯2017初赛]迷宫 Description X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立, ...

  2. [蓝桥杯2017初赛]跳蚱蜢-map标记+bfs+环形数组

    解题思路: 这题如果我们考虑蚱蜢跳,有很多蚱蜢,有很多情况,所以我们让空盘跳,这样就简化题目了,然后我们化圆为直,将题目的情况看成字符串012345678,最后要变成087654321,这样题目就变得 ...

  3. 蓝桥杯2017国赛 瓷砖样式 dfs+map

    标题:磁砖样式小明家的一面装饰墙原来是 3*10 的小方格.现在手头有一批刚好能盖住2个小方格的长方形瓷砖.瓷砖只有两种颜色:黄色和橙色.小明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来.小 ...

  4. [蓝桥杯2017初赛]算式900+dfs,next_permutation

    法一: 代码如下: #include <iostream> using namespace std; const int N = 15; bool st[N]; int a[N];void ...

  5. 蓝桥杯2017初赛-迷宫-dfs

    题目描述 X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间,R表示走到右边 ...

  6. [蓝桥杯2017初赛]方格分割-dfs+思维

    解题思路: 这是大佬的思路: 这道题可能上来会想到搜格子,但搜格子意味着更高的复杂度以及判连通的需要,本题似乎搜索要切开的边更优.由题意,这一条切割线必定经过图的中心点,那么我们一旦确定了半条到达边界 ...

  7. [蓝桥杯2017初赛]包子凑数-模拟+巧妙枚举

    题目描述 小明几乎每天早晨都会在一家包子铺吃早餐.这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子 每种蒸笼都有非常多笼,可以认为是无限笼. 每当有顾客想买X个包子,卖包子的大叔就会选出若干笼包 ...

  8. [蓝桥杯2017初赛]九宫幻方-数论+next_permutation枚举

    题目描述 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分. 三阶幻方指的是将1~9不重复的填入一个33的矩阵当中,使得每一行.每一列和每一条对角线的和都是相同的. 三阶幻方又被 ...

  9. [蓝桥杯2017初赛]贪吃蛇长度-模拟(水题)

    题目描述 小明在爷爷的私人收藏馆里找到一台老式电脑.居然没有图形界面,只能用控制台编程. 经过小明的一阵摸索,神奇地设计出了控制台上的贪食蛇游戏. 如下图,是游戏时画面截图. 其中,H表示蛇头,T表示 ...

最新文章

  1. 基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线
  2. 2016年-2020年 考研 国家线汇总
  3. Delta3d角色注册机制
  4. SpringCloud 入门教程(八): 断路器指标数据监控Hystrix Dashboard 和 Turbine
  5. Eclipse无提示的解决办法 和 内容辅助技巧
  6. mongoose c++封装
  7. CSDN上下标输入方法
  8. mysql查询重复用户名_mysql取出以上用户名(去除重复),score值最高的所有记录,查出重复记录...
  9. 祭奠被遗忘的冒泡排序
  10. Android中将一个图片切割成多个图片
  11. UDP编程与Socket
  12. 7-128 大于m的最小素数
  13. 俄亥俄州立大学计算机专业排名,俄亥俄州立大学计算机工程全美专业排名
  14. php实现秒数倒计时,jQuery网页倒计时代码 显示天、小时、分钟与秒数
  15. 为什么要考华为云认证?有什么用?
  16. 软件测试知识点和面试题--app测试篇
  17. 618京东物流发大招,中小件完成了大陆地区的区县全面覆盖
  18. catia刨面命令_Catia查看装配体剖面的操作方法
  19. nyoj 1275 导弹发射(河南省2016年省赛)
  20. Hadoop的fsck工具

热门文章

  1. ArcGIS实验教程——实验七:矢量数据空间校正(Spatial Adjustment)
  2. Android之让EditText不被键盘挡住
  3. Android之图形图像之使用Path类总结
  4. js (javascript) 中获取年月日信息
  5. 【C语言简单说】十一:switch 补
  6. hutol json null值没了_JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法...
  7. 仓库处理中 无法修改_上海电商仓储物流公司,冷链仓库-上海玖日仓储
  8. 世界上最震撼的地质景观,你认识多少?
  9. 全校师生放6天春假;清华大学设立天文系;郭守敬望远镜光谱数突破千万;《自然》发表最新发现;百度败诉需道歉;这就是今天的大新闻...
  10. 一分钟教你用Excel从统计局抓数据!