poj2965解題報告

2021-08-25 19:11:32 字數 795 閱讀 7277

這道題目的思路和[url=的思路一樣。

有所不同的是這道題目中還需要輸出搜尋的路徑,於是在unit中加了乙個pre變數以記錄搜尋的路徑,最後通過遞迴呼叫print_detail從前往後輸出寬搜的結果。

problem: 2965 user: godfrey90

memory: 1992k time: 1000ms

language: g++ result: accepted

source code

#include

struct unit ;

void flip(unit a, int n, unit& b);

void print_detail(unit queue, int n);

int main() ;

/*read in*/

char str[10];

for (int i = 0; i < 4; i++) }}

/*search*/

while (!(queue[q].x == 0))

if (p == q)

p++;

}if (queue[q].x == 0)

printf("%d\n", queue[q].rounds);

print_detail(queue,q);

return 0;

}void flip(unit a, int n, unit& b)

void print_detail(unit queue, int n)

poj 2965 解題報告

就是對乙個4x4的棋盤進行翻轉,每一次翻轉都將讓同一行和列一起翻轉,直到所有符號都變為 時成功。通過列舉加上深度優先搜尋的方法進行解決,列舉通過行號和列號順序進行,每個位置都有翻轉和不翻轉兩種選擇 通過乙個位置兩次翻轉來回溯 poj 2965 244k 844ms include using nam...

poj 2965 遞迴 列舉

本題與1753思路一樣,區別就在於要記錄位置。deep是當前進行到了哪一步,step是判斷用step步是否可以完成,因此記錄位置只需在change 後做,回溯的時候雖然會說明上一步無效,但不用修改記錄,因為下一次記錄會覆蓋它。include using namespace std bool map ...

POJ 1753 POJ 2965 解題報告

poj 1753 poj 2965 解題報告 poj 1753 和 poj 2965 是同一型別的題目,但是2965 有乙個比較簡單的方法來解決。poj 1753 我用的是打表的方法,打表很不厚道。思路 首先我們需要確定儲存的資料結構,從網上搜得用二進位制位來存,這確實是個很巧妙的方法,例如,我們將...