博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
寒假作业
阅读量:4841 次
发布时间:2019-06-11

本文共 1785 字,大约阅读时间需要 5 分钟。

本题来自2016年蓝桥杯C/C++ A组第6题

寒假作业

现在小学的数学题目也不是那么好玩的。

看看这个寒假作业:

每个方块代表1~13中的某一个数字,但不能重复。

比如:
6 + 7 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5

以及:

7 + 6 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5

就算两种解法。(加法,乘法交换律后算不同的方案)

你一共找到了多少种方案?

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

 

思路一:用全排列函数next_permutation一个一个去试结果,13个数字的全排列运算时间非常长,等一个小时左右可以出结果。。。

 

1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 using namespace std; 8 9 int main()10 {11 vector
v;12 for (int i = 1; i <= 13; ++i)13 v.push_back(i);14 15 int cnt = 0;16 do17 {18 if (v[0] + v[1] == v[2] && v[3] - v[4] == v[5] && v[6] * v[7] == v[8] && v[9] == v[10] * v[11])19 cnt++;20 } while (next_permutation(v.begin(), v.end()));21 22 cout << cnt << endl;23 24 return 0;25 }

 

 

 

思路二:直接dfs回溯,每生成一个算式之后就判断如果不满足就return不再继续。例如,a1 + a2 !=a3的话直接返回。当然,每一个算式都要判断,这样大大的减少了枚举量。

1 #include 
2 3 using namespace std; 4 5 int a[13]; 6 bool visit[14] = { false }; 7 int ans = 0; 8 9 void dfs(int x)10 {11 if (x >= 13)12 return;13 if (x == 3 && a[0] + a[1] != a[2])14 return;15 if (x == 6 && a[3] - a[4] != a[5])16 return;17 if (x == 9 && a[6] * a[7] != a[8])18 return;19 if (x == 12)20 {21 if (a[11] * a[10] == a[9])22 ans++;23 }24 25 26 for (int i = 1; i <= 13; i++)27 {28 if (!visit[i])29 {30 visit[i] = true;31 a[x] = i;32 dfs(x + 1);33 visit[i] = false;34 }35 }36 }37 38 39 int main()40 {41 dfs(0);42 cout << ans << endl;43 44 return 0;45 }

 

最终答案: 64

转载于:https://www.cnblogs.com/FengZeng666/p/10461885.html

你可能感兴趣的文章
td在relative模式下,IE9不显示border
查看>>
7-内置数据结构
查看>>
version control(版本控制)
查看>>
FutureTask
查看>>
JDBC的元数据
查看>>
Intel CPU参数查询网站
查看>>
JQuery - Ajax和Tomcat跨域请求问题解决方法!
查看>>
spring跨重定向传递数据
查看>>
10693 PKKJ的生日礼物
查看>>
把Nehe 纹理教程06,用freeImage改写
查看>>
python 中is和= = 的区别
查看>>
[C/C++]关于C++11中的std::move和std::forward
查看>>
图片显示、PNG透明
查看>>
Java的sql动态参数
查看>>
centos 6.5 双网卡 上网 virtualbox nat hostonly
查看>>
11大Java开源中文分词器的使用方法和分词效果对比
查看>>
解题报告 Valentine‘s seat
查看>>
反射动态创建不同的Processor
查看>>
函数中对象名的传参形式
查看>>
PHP基础知识
查看>>