0x01.问题
在2行5列的格子中填入1到10的数字。
要求:相邻的格子中的数,右边的大于左边的,下边的大于上边的。
如下图所示的2种,就是合格的填法。
请你计算一共有多少种可能的方案。
注:本题来自蓝桥杯2015年决赛,方格填数,为填空题。
0x02.分析问题
从题目,我们可以得到,这些填入的数字应该满足以下条件:
右边的数比左边大。下面的数比上面的数大。第一个格子一定是1,最后一个各自一定是10,其余每个各自都必须在一定的范围内。数字不能重复。
很明显,暴力枚举法就诞生了,只需8个循环,对每种组合进行一一判断即可。
10个数字依次填入,不满足就退回去找其他的数字,这是一个回溯的过程,所以我们可以使用深度优先搜索来解决此问题。
0x03.解决代码--暴力枚举
#includeint a[2][5]; int cou = 0; int check() {	for (int i = 1; i