转跳到内容

每 日 算 法 挑 战 【第B期】


只显示该作者

只有该作者的内容显示中。 返回到主题

推荐贴

:mx005:艹,感觉又到了我的本职工作了,某种意义上和扫雷或者数独差不多吧,准确来说离数独更近,扫雷比这个还会涉及到一些置信度问题以及一些局部的SAT问题快速求解

 

因为反正只有24个词,我先根据长度sort一下应该不亏

另外我姑且假设不存在连续的2个词排在一起,所以根据长度已经可以剪枝掉很大一部分情况了。而且算一下格子和字符串长度能不能对上,对不上根本不用试了,直接QAQ就好了

 

接下来就先从可选情况最少的开始试就好了吧,这是最基本的heuristic

可选情况举例来说

现在有3个5字母,1个6字母,2个7字母

那应该先试1个6字母的,然后再试7字母的,最后是5字母的

 

另外我还有一个会有用的heuristic来tie-break

对于相同的可能情况,比如2个4字母的,1个3字母的,优先选用和其他格子交叉多的,比如3字母的和另外2个交叉,而6字母的只和1个交叉,那么先填3字母的,接着再填6字母的

加入4字母的交叉分别是1个和2个,7字母的交叉分别是3个和1个,那优先把3个交叉的7字母空格丢进来,然后再试2交叉的4字母

 

(说白了就是优先选用可能性最少,且对其他限制最多的来试

 

填入之后,根据交叉,就可以搜索指定长度字符串内指定位置带指定字母这样的字符串了,如果没有,直接剪枝然后backtrack

 

如果剪枝剪秃了,那就QAQ吧,不然会得到搜索结果的

,由yhz012修改

yhz012玩游戏因为手残被BOSS虐杀,大喊“这火我不传了!”,结果在路过的一名修女帮助下顺利通关。4节操

注释
Mr.K 018 Mr.K 018 50.00节操 糖~
链接到点评
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款