1
在 nn 的網格上,由邊界某個格子出發四連通經過所有格子一次且僅一次再回到邊界上,要求拐彎次數至少有 n(n-1)-1 次。
看起來無從下手。不知從何下手的題目一般有兩種解決辦法:
1.考慮能否 縮小範圍,遞歸處理。
2.
這道題顯然是第一種。因爲我們可以沿着左邊緣和下邊緣兩列走一圈,遞歸套用 n-2 的構造方案。
這道題目啓發我們,很多時候 遞歸構造 是一個不錯的選擇。
2
給定一個度數序列,詢問是否存在一個簡單圖滿足這個序列。
構造方法:按度數從大到小排序,貪心地向最大的若干個點連邊。
有解當且僅當:
3
考慮一個貪心:從低向高擺放,每次選擇最多的顏色填最後一行。但是這樣其實是不對的。比如 1,4,5。
那怎麼辦呢?注意到當 n 較大(>3)時,最多的顏色肯定大於等於當前要放的數量,問題在於有時候有多種選擇。這時候我們稱這一行爲可選擇的,先隨便放一種顏色。放到不能放的時候,此時只有兩種情況:(1,1,1)/(2,2,2),我們找到最靠上的一個可選擇的行k,那麼k-1一定是不可選擇的,而且和它顏色不同。我們把這一行的顏色變一下,那麼就會變得有解 (1,2,3)/(0,1,2)。
我們使用了 調整法,當有多個選擇的時候先隨便選擇一個,等到後面再決定選擇哪個。
小結:
構造題考驗人類智慧。很多時候都是構造簡單的結構,組成最後的構造。構造題一般是構造一些特殊的東西,不太可能根據輸入的不同構造完全不同的東西(太毒瘤了)。
構造 ×× 數量,可以考慮進制拆分。問題複雜,可以考慮把問題規約到小範圍。打表找規律。