蓝桥杯2017初赛-9数算式-dfs
题目描述
观察如下的算式: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相关推荐
- 蓝桥杯2017初赛:迷宫 (dfs搜索)
[蓝桥杯2017初赛]迷宫 Description X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立, ...
- [蓝桥杯2017初赛]跳蚱蜢-map标记+bfs+环形数组
解题思路: 这题如果我们考虑蚱蜢跳,有很多蚱蜢,有很多情况,所以我们让空盘跳,这样就简化题目了,然后我们化圆为直,将题目的情况看成字符串012345678,最后要变成087654321,这样题目就变得 ...
- 蓝桥杯2017国赛 瓷砖样式 dfs+map
标题:磁砖样式小明家的一面装饰墙原来是 3*10 的小方格.现在手头有一批刚好能盖住2个小方格的长方形瓷砖.瓷砖只有两种颜色:黄色和橙色.小明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来.小 ...
- [蓝桥杯2017初赛]算式900+dfs,next_permutation
法一: 代码如下: #include <iostream> using namespace std; const int N = 15; bool st[N]; int a[N];void ...
- 蓝桥杯2017初赛-迷宫-dfs
题目描述 X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间,R表示走到右边 ...
- [蓝桥杯2017初赛]方格分割-dfs+思维
解题思路: 这是大佬的思路: 这道题可能上来会想到搜格子,但搜格子意味着更高的复杂度以及判连通的需要,本题似乎搜索要切开的边更优.由题意,这一条切割线必定经过图的中心点,那么我们一旦确定了半条到达边界 ...
- [蓝桥杯2017初赛]包子凑数-模拟+巧妙枚举
题目描述 小明几乎每天早晨都会在一家包子铺吃早餐.这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子 每种蒸笼都有非常多笼,可以认为是无限笼. 每当有顾客想买X个包子,卖包子的大叔就会选出若干笼包 ...
- [蓝桥杯2017初赛]九宫幻方-数论+next_permutation枚举
题目描述 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分. 三阶幻方指的是将1~9不重复的填入一个33的矩阵当中,使得每一行.每一列和每一条对角线的和都是相同的. 三阶幻方又被 ...
- [蓝桥杯2017初赛]贪吃蛇长度-模拟(水题)
题目描述 小明在爷爷的私人收藏馆里找到一台老式电脑.居然没有图形界面,只能用控制台编程. 经过小明的一阵摸索,神奇地设计出了控制台上的贪食蛇游戏. 如下图,是游戏时画面截图. 其中,H表示蛇头,T表示 ...
最新文章
- 基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线
- 2016年-2020年 考研 国家线汇总
- Delta3d角色注册机制
- SpringCloud 入门教程(八): 断路器指标数据监控Hystrix Dashboard 和 Turbine
- Eclipse无提示的解决办法 和 内容辅助技巧
- mongoose c++封装
- CSDN上下标输入方法
- mysql查询重复用户名_mysql取出以上用户名(去除重复),score值最高的所有记录,查出重复记录...
- 祭奠被遗忘的冒泡排序
- Android中将一个图片切割成多个图片
- UDP编程与Socket
- 7-128 大于m的最小素数
- 俄亥俄州立大学计算机专业排名,俄亥俄州立大学计算机工程全美专业排名
- php实现秒数倒计时,jQuery网页倒计时代码 显示天、小时、分钟与秒数
- 为什么要考华为云认证?有什么用?
- 软件测试知识点和面试题--app测试篇
- 618京东物流发大招,中小件完成了大陆地区的区县全面覆盖
- catia刨面命令_Catia查看装配体剖面的操作方法
- nyoj 1275 导弹发射(河南省2016年省赛)
- Hadoop的fsck工具
热门文章
- ArcGIS实验教程——实验七:矢量数据空间校正(Spatial Adjustment)
- Android之让EditText不被键盘挡住
- Android之图形图像之使用Path类总结
- js (javascript) 中获取年月日信息
- 【C语言简单说】十一:switch 补
- hutol json null值没了_JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法...
- 仓库处理中 无法修改_上海电商仓储物流公司,冷链仓库-上海玖日仓储
- 世界上最震撼的地质景观,你认识多少?
- 全校师生放6天春假;清华大学设立天文系;郭守敬望远镜光谱数突破千万;《自然》发表最新发现;百度败诉需道歉;这就是今天的大新闻...
- 一分钟教你用Excel从统计局抓数据!