;
}
for(i=0;i<8;i++)
{
tx=hn[i].x;//hn[]保存八个方位子结点
ty=hn[i].y;
s[tx][ty]=count;
dfs(tx,ty,count+1);//递归调用
s[tx][ty]=0;
}
}
这样做是完全可行的,因为它输入的是全部解。
但是马遍历当8×8时解是非常之多,用天文数字形容也不为过,这样一来我们的求解的过程就非常慢,并且出一个解的时间也会也非常慢。
当我们在每个结点对其子结点进行选取的时候,优先选择‘出口’最小的进行搜索,‘出口’的意思是在这些子结点中它们的可行子结点的个数,也就是‘孙子’结点越少的越优先跳。
如果优先选择出口多的子结点,那出口少的子结点就会越来越多,很可能出现‘死’结点
这样对下面的搜索纯粹是徒劳,这样就会浪费很多无用的时间。
反过来如果每次都优先选择出口少的结点跳,那出口少的结点就会越来越少,这样跳成功的机会就更大一些。
.......
苏牧:“。。。。”
他的脑海中再次缓缓的出现了一堆问号。
完全没想到居然会有这么大的跨越。
看着仅仅只有一个小题,却是密密麻麻的解析,苏牧突然明白了为什么数学奥赛参加的人那么多,信息学奥赛参加的人却那么少。
这东西,确定是适合青少年做的??
不会秃顶吗??
......
PS:因为要开始上网课了...要准备的东西挺多的,后面也会慢慢忙起来,所以更新时间偶尔会些变化,但是每天两更应该可以保持住...
PS2:弱弱的求几张推荐票。
请收藏:https://m.yq2.cc
(温馨提示:请关闭畅读或阅读模式,否则内容无法正常显示)