1. 程式人生 > >【Luogu P1074】靶形數獨

【Luogu P1074】靶形數獨

deque 我們 class 太多的 排序 span 進入 其中 開始

Luogu P1074

題意:給一個數獨,問怎麽填會使每個位置填的數乘以它的權值得到的和最大。其中每個位置的權值在題面中給出了。

思路:首先我們考慮搜索。由於我們不可能搜每個格子取太多的數,所以我們從所能取的數少的格子開始搜索。

由於搜索的過程中肯定會每個格子能取的個數有變化,那麽我們可以過一段時間重新排序。我將這個時間設為\(30000\)個時間單位(進入搜索的次數)。

然後每一輪搜索的時候我們取出第一個格子,然後枚舉它填的數,進入下一層搜索。

我們可以將所有的格子放到\(deque\)裏面,以便於取出第一個格子,又要塞回去。

然後就是要對於每一行、每一列、每一個九宮格都存一個所用的數的\(mask\)

了。

【Luogu P1074】靶形數獨