【Luogu P1074】靶形数独

Luogu P1074

题意:给一个数独,问怎么填会使每个位置填的数乘以它的权值得到的和最大。其中每个位置的权值在题面中给出了。

思路:首先我们考虑搜索。由于我们不可能搜每个格子取太多的数,所以我们从所能取的数少的格子开始搜索。

由于搜索的过程中肯定会每个格子能取的个数有变化,那么我们可以过一段时间重新排序。我将这个时间设为\(30000\)个时间单位(进入搜索的次数)。

然后每一轮搜索的时候我们取出第一个格子,然后枚举它填的数,进入下一层搜索。

我们可以将所有的格子放到\(deque\)里面,以便于取出第一个格子,又要塞回去。

然后就是要对于每一行、每一列、每一个九宫格都存一个所用的数的\(mask\)了。

猜你喜欢

转载自www.cnblogs.com/denverjin/p/10629707.html