1.可行性剪枝
2.最優性剪枝
3.重複性剪枝
4.奇偶性剪枝
1.迷宮改
#include
using
namespace std;
const
int n=10;
int n,m,t;
char mat[n]
[n];
char vis[n]
[n];
int dx[4]
=;int dy[4]
=;bool ok;
void
dfs(
int x,
int y,
int t)
vis[x]
[y]=
true
;for
(int i=
0;i<
4;i++
)dfs
(tx,ty,t+1)
;}vis[x]
[y]=
false;}
intmain()
int sx,sy,ex,ey;
for(
int i=
0;i(mat[i]
[j]==
'd')}}
if((sx+sy+ex+ey+t)%2
!=0)else
else
}return0;
}/*樣例輸入:
4 4 5
s.x.
..x.
..xd
....
樣例輸出:
no*/
2.全排列
另:全排列問題設計知識較多,在其他地方進行補充
/*輸入乙個數n,表示從1到n的n個數字共有幾種排列方式,並全部輸出*/
#include
using
namespace std;
int n;
bool vis[20]
;void
dfs(
int cnt,
int num)
for(
int i=
1;i<=n;i++)}
}int
main()
cout<
dfs(0,
0);return0;
}/*樣例輸入:
3樣例輸出:
6123
132213
231312
321*/
3.因數最多的數
題目連線/參考部落格
#include
using
namespace std;
typedef
long
long ll;
ll n,ans;
int mc,prime[15]
=;void
dfs(
int u,
int m,ll x,ll cnt)
//u:用了幾個素數,m:最大幾次方,x:目前值,cnt:因子個數
}int
main()
return0;
}
藍橋杯 基礎練習VIP 2n皇后問題(深搜)
輸出乙個整數,表示總共有多少種放法。樣例輸入 41 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 樣例輸出 2思路 資料量不大,就是暴力搜尋,先安排一種皇后,然後再安排另一種皇后。注意判斷的條件。如下 include define ll long long using namespac...
藍橋杯演算法練習筆記 6 棧和遞迴
0.棧的基本使用 include include using namespace std intmain 1.漢諾塔問題 漢諾塔問題 include include using namespace std 問題分解 1.把 n 1 個盤子移動到b 2.把最大的盤子從a移動到c 3.把b上的n 1個盤...
藍橋杯演算法練習筆記 12 動態規劃模型
1.最大欄位和 最大字段 連續 和 include include using namespace std int n int a 105 int ans 0 voidf1 sum 0 voidf2 else intmain f1 普通寫法,o n2 f2 動態規劃,o n cout cin 6 2...