题目分析:
给你一个未完成的数独,数独内的每个格子都有一个分值,数独的分值就是每个格子乘以当前的分值的和。求能获得的最大分值。
正解:
这题一眼看下去就是一道回溯。只不过如果按照普通的回溯来做,肯定会超时。
以下为思考过程:
既然正方向搜会超时,那我就反方向来搜索。
于是我试了四种方向:
结果发现,不管怎么搜都是会超时。。。
BUT——
机智的我发现了,每次超时的数据都不同!!!
于是便把四个搜索合在了一个程序里,但问题来了——
我TM怎么知道要怎样搜???
SO我便想到了RANDOM,
但想想某徐为用RANDOM烧正确率刷分,还是算了吧。。。
好吧,归入正题。
其实这题我们可以发现,如果从已知数字较多的那一边搜起,效率会多很多。
因为一边的数都已经确认下来了,另一边计算的次数就会少很多。
所以我们可以把格子这样分:
那一边多就从那边搜。
但问题是,有时候可能一点计算错误就会让搜索方法改变,所以我大发慈悲的画了一个图:
按照这样去分类就行了。