problem_id=1694)bfs入門成功後,繼續入dfs的坑,那麼先把bfs做過的題用dfs寫一遍吧。。。
馬的遍歷
話說這種題還是bfs好(畢竟快)。。。但為了配合dfs並且不被tle就人工加乙個閾值限制一下吧。。(受題解大佬提醒 閾值在200左右)上**!
#include
#define check(y,x) (x>=1&&x<=wx&&y>=1&&y<=wy)
using
namespace std;
int map1[
405]
[405];
int wx,wy;
struct node
;int dir[8]
[2]=
,,,,
,,,}
;//標記馬行走方位。
void
dfs(
int y,
int x,
int num)}}
intmain()
oj 最大黑色區域
#include
#define check(y,x) (x>=0&&y>=0&&yusing
namespace std;
bool _map[
105]
[105];
int dx,dy,num;
int dir[4]
[2]=
,,,}
;int
dfs(
int y,
int x)
}return num;
}int
main()
cout<}return0;
}
好久沒更新了。。今天繼續更一道dfs
需要用到回溯技巧
洛谷 1605 迷宮
#include
#define check(y,x) (x>=1&&x<=b&&y>=1&&y<=a)
//定義好邊界,進行判斷。
using
namespace std;
int dir[4]
[2]=
,,,}
;int dx,dy,num,px,py,a,b;
bool map1[23]
[23];
void
dfs(
int py,
int px)
for(
int i=
0;i<
4;i++)}
return;}
intmain()
num=
0;map1[py]
[px]=1
;dfs
(py,px)
;printf
("%d\n"
,num)
;return0;
}
好久沒寫dfs了,來更一篇dfs+高精加+斐波拉契數列
洛谷 1225 數樓梯
#include
//dfs+高精加
using
namespace std;
int n,len=
1,f[
5003][
5003];
//f[k][i]--第k階台階所對應的走法數
voidhp(
int k)
//高精度加法,k來存階數
}int
main()
剛剛寫了個stl解決排列的方法,現在再更一道用dfs寫組合的問題。
洛谷 1157
#include
using
namespace std;
bool vis[25]
;int m,n;
int a[25]
;void
dfs(
int x,
int num)
for(
int i=x;i1;i++)}
}int
main()
}
dfs入門 紅與黑
時間限制 1 sec 記憶體限制 32 mb 提交 10 解決 8 提交 狀態 討論版 小明站在乙個矩形房間裡,這個房間的地面鋪滿了地磚,每塊地磚的顏色或是紅色或是黑色。小明一開始站在一塊黑色地磚上,並且小明從一塊地磚可以向上下左右四個方向移動到其他的地磚上,但是他不能移動到紅色地磚上,只能移動到黑...
DFS入門 例題
以下是全網收集整理的和自己寫的部分,絕對保證dfs輕鬆入門。核心 關於dfs引數問題,什麼在變化,就把什麼設定成引數。void dfs 引數用來表示狀態 if 越界或者是不合法狀態 return if 特殊狀態 剪枝 return for 擴充套件方式 dfs全排列 include include ...
DFS基礎入門
dfs思想 通過迭代遞迴進行搜尋 2.搜尋的結束條件 3.確定下層搜尋入口 4.重複判斷 5.分析題目,觀察路徑是否需要訪問多次,若是則需要回溯,反之,不用 include bits stdc h using namespace std int k,n int num 20 a 20 num用來儲存...