蓝桥杯.寒假作业(DFS回溯+剪枝)
Question:
Result: 64
Solve:
DFS回溯,就一个一个去试能填几,然后就TLE了
两个问题:
第一:完全跑13个数去试,会炸,需要提前把不可能成立的方案去掉,比如填完第一行了,我就去看看第一个式子能否成立
第二:这个题的标答里除法是只算整除的,而不是“/”,然后就导致我看着我的1376发呆了半天,大无语事件
Code:
#include
using namespace std;
bool a[14];
int num[13];
int res = 0;
void dfs(int deep)
{
//提前去除
if(deep > 3 && num[1] + num[2] != num[3])return ;
if(deep > 6 && num[4] - num[5] != num[6])return ;
if(deep > 9 && num[7] * num[8] != num[9])return ;
//终判
if(deep > 12)
{
if
共有 0 条评论