虫食算
题目链接:虫食算
感谢 @ l z h @lzh @lzh 大佬的帮助
题目描述
解题思路
很明显这是一道深搜题 (不然它怎么会归到深搜专栏里呢) 。
可以搜索枚举每一个字母来寻找最佳答案。
但这样是 O ( 1 0 n ) O(10^n) O(10n) 的时间复杂度,肯定是过不了的,所以要加入剪枝。
如果当前情况已经不合法了,自然不能搜下去。
那么现在关键在于 c h e c k ( ) check() check() 函数。
如果当前位三个数都被搜到过了,那么直接判断即可。但如果上一位有数未知,那么最多还可以对这一位贡献 1 1 1 。
最后一位要特判:无论是进位或者不等都是不合法的。
code
#include<iostream>
#include