原创 習題7-8:數字謎(dfs暴搜)

習題7-8:數字謎 題目大意: 給你三個待定的字符串。形如7 * 8 。要求變換空格或者數字似的前一個字符串X後一個字符串=最後一個字符串有唯一解,且變換次數最少,多解時輸出字典序最小的答案。規定空格的字典序小於數字。星號指代空格。

原创 習題7-13:數字表達式

習題7-13:數字表達式 題意: 給定一個數字,可以在中間插入+ - * 使得式子等於2000. 思路: 暴力枚舉,最多8個位置,每個位置有4種情況,最多4^8。 可行。不過要注意題目中要按字典序輸出,還有一個坑點,就是至少要插入

原创 習題7-3:多米諾效應

習題7-3:多米諾效應 題意: 有一副牌,給出pips和bone的對應值。現在輸入一個7*8的pips矩陣,輸出所有對應的bone矩陣。bone矩陣是每倆個相同數字是挨着的。 思路: 標準dfs回溯,只不過位置是一個一個移動的枚舉

原创 習題7-6:重疊的正方形(暴力DFS)

習題7-6:重疊的正方形 題目大意:問能不能用不超過6張2x2的方紙在4x4的方格中擺出給定的圖形? 題目分析:暴力枚舉出P(9,6)種(最壞情況)方案即可。 #include<cstdio> #include<cstring> #i

原创 習題7-1:消防車(dfs+回溯)

習題7-1:消防車 題意:構造出一張圖,給出一個點,字典序輸出所有從1到該點的路徑。 裸搜會超時的題目,其實題目的數據特地設計得讓圖稠密但起點和終點卻不相連,所以直接搜索過去會超時。 只要判斷下起點和終點能不能相連就行了,可以用並查

原创 例題8-3:和爲0的4個值(中途相遇法)

例題8-3:和爲0的4個值 用中途相遇法的思想來解題。分別枚舉兩邊,和直接暴力枚舉四個數組比可以降低時間複雜度。 這裏用到一個很實用的技巧:   求長度爲n的有序數組a中的數k的個數num?     num=upper_bound

原创 習題7-15:最大的數(dfs+最優性剪枝)

習題7-15:最大的數 題意: 在一個R行C列(2≤R,C≤15,R∗C≤30)的矩陣裏有障礙物和數字格(包含1~9的數字)。 你可以從任意一個數字格出發,每次沿着上下左右之一的方向走一格,但不能走到障礙格中,也不能重複經過一個數字