UVa 639 放車問題

2021-06-21 01:44:10 字數 409 閱讀 2891

剛拿到題目知道要用回溯,可是dfs裡傳參的思路有問題,卡殼了。。知道這個題目棋盤只有4*4,可以窮舉,傳遞當前車的數量,每一次都與最大值比較。此題得到乙個經驗,dfs傳遞的引數可以是結果,根據題目要求在每一次掉用都與當前最值比較,當然,這是在題目資料量不大的情況下。

#include#includeint n,vis[10][10],ans;

char mat[10][10];

int judge(int x,int y)

void dfs(int cur) //cur用來記錄當前已有多少車

}int main()

ans=0;

dfs(0);

printf("%d\n",ans);

}return 0;

}

UVA639 遞迴 回溯

1 題意 給出一張地圖,x 是牆,是可放的位置,求棋盤上最多放多少個車 中國象棋 2 分析 回溯 注意 在進入下一層的判斷,如果符合某個約束條件,則進入下一層第乙個遞迴例項,不符合或者退出一第乙個遞迴例項後,都應該進入第二個遞迴例項,不然怎麼回溯 另外注意不要忘記在最後一層的遞迴中,return。i...

UVa 11270 鋪放骨牌(輪廓線DP)

題意 用1 2骨牌覆蓋n m棋牌,有多少種方法?思路 這道題目是典型的輪廓線dp題。所謂輪廓線dp,就是以整行整列為狀態進行動態規劃時無法進行狀態轉移,那麼此時就可以用到輪廓線,當然,這種方法只能使用在乙個窄棋盤上,大了肯定是不行的,要超時!輪廓線dp就是按照從上到下,從左到右的順序進行狀態轉移,每...