dfs思想:通過迭代遞迴進行搜尋
2.搜尋的結束條件
3.確定下層搜尋入口
4.重複判斷
5.分析題目,觀察路徑是否需要訪問多次,若是則需要回溯,反之,不用
#include "bits/stdc++.h"
using namespace std;
int k, n;
int num[20], a[20];//num用來儲存選中的數
int ok = 0;
bool is_prime(int a)
}return 1;
}void dfs(int cnt, int a_p)
if (is_prime(sum))ok++;
} else
}}int main()
dfs(0, 0);
printf("%d\n", ok);
}
#include "bits/stdc++.h"
using namespace std;
char a[110][110];
int way_x[4] = ;
int way_y[4] = ;
int n, m;
void dfs(int x, int y, bool type)
if (type) else
for (int i = 0; i < 4; i++)
}}int main()
}for (int i = 1; i <= n; i++)
}for (int i = 1; i <= n; i++)
printf("\n");
}}
#include "bits/stdc++.h"
using namespace std;
int n, m, start_x, start_y;
int a[20][20];
int sum_time = 0x7f7f7f7f;
int way_x[4] = ;
int way_y[4] = ;
void dfs(int x, int y, int life, int time) else if (a[x][y] == 4)
for (int i = 0; i < 4; i++)
}}int main() }}
dfs(start_x, start_y, 6, 0);
if (sum_time == 0x7f7f7f7f)printf("-1\n");
else printf("%d\n", sum_time);
}
#include "bits/stdc++.h"
using namespace std;
char a[510][510];
int n, m;
int way_x[4] = ;
int way_y[4] = ;
void dsf(int x, int y)
}int main()
}for (int i = 1; i < n; i++)
for (int j = 0; j < m; j++)
for (int i = 0; i < n; i++)
}printf("%d\n", sum);
}
#include "bits/stdc++.h"
using namespace std;
int min_cnt = 0x7ffffff;
bool c[205];
int n;
void dsf(int a, int b, int cnt, int k)//a:當前b:目的地cnt:已經走的步數
else if (cnt > min_cnt)return;
c[a] = 0; //標記已經走過
if (a + k[a] <= n && c[a + k[a]]) dsf(a + k[a], b, cnt + 1, k);
if (a - k[a] >= 1 && c[a - k[a]]) dsf(a - k[a], b, cnt + 1, k);
c[a] = 1;//回溯
}int main()
dsf(a, b, 0, k);
if (min_cnt != 0x7ffffff) printf("%d", min_cnt);
else printf("-1");
}
#include "bits/stdc++.h"
using namespace std;
int n, m;
char map1[510][510];
bool vis[510][510];
bool flag = 1;
int way_x[4] = ;
int way_y[4] = ;
void dsf(int x, int y) else
}}int main() }}
dsf(start_x, start_y);
if (flag)printf("no\n");
else printf("yes\n");
}
dfs入門 紅與黑
時間限制 1 sec 記憶體限制 32 mb 提交 10 解決 8 提交 狀態 討論版 小明站在乙個矩形房間裡,這個房間的地面鋪滿了地磚,每塊地磚的顏色或是紅色或是黑色。小明一開始站在一塊黑色地磚上,並且小明從一塊地磚可以向上下左右四個方向移動到其他的地磚上,但是他不能移動到紅色地磚上,只能移動到黑...
DFS入門 例題
以下是全網收集整理的和自己寫的部分,絕對保證dfs輕鬆入門。核心 關於dfs引數問題,什麼在變化,就把什麼設定成引數。void dfs 引數用來表示狀態 if 越界或者是不合法狀態 return if 特殊狀態 剪枝 return for 擴充套件方式 dfs全排列 include include ...
DFS 入門系列
problem id 1694 bfs入門成功後,繼續入dfs的坑,那麼先把bfs做過的題用dfs寫一遍吧。馬的遍歷 話說這種題還是bfs好 畢竟快 但為了配合dfs並且不被tle就人工加乙個閾值限制一下吧。受題解大佬提醒 閾值在200左右 上 include define check y,x x ...