DFS
文章平均质量分 58
YAOSHIAO
这个作者很懒,什么都没留下…
展开
-
AcWing843. n-皇后问题(C++算法)
1、题目: n-皇后问题是指将 n 个皇后放在 n∗n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数n,请你输出所有的满足条件的棋子摆法。 输入格式 共一行,包含整数n。 输出格式 每个解决方案占n行,每行输出一个长度为n的字符串,用来表示完整的棋盘状态。 其中”.”表示某一个位置的方格状态为空,”Q”表示某一个位置的方格上摆着皇后。 每个方案输出完成后,输出一个空行。 输出方案的顺序任意,只要不重复且没有遗漏即可。 数据范围 1≤n≤9 输原创 2021-01-20 10:56:31 · 437 阅读 · 0 评论 -
AcWing846. 树的重心(C++算法)
#include #include #include #include using namespace std; const int N = 100010, M = N * 2; int n; int h[N], e[M], ne[M], idx; int ans = N; bool st[N]; void add(int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ; } int dfs(int u) { st[u] = true;原创 2020-10-14 22:56:52 · 446 阅读 · 0 评论 -
AcWing 842. 排列数字(C++算法)
AcWing 842. 排列数字 1、题目: 给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数n。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数据范围 1≤n≤7 输入样例: 3 输出样例: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 2、基本思想: 递归,按照字典序每排完一组(三级,比如1 2 3)就回溯上一级确定上一级要排的数。为了避免重复用state做位移运算,标记已经有数据原创 2020-09-09 20:14:34 · 413 阅读 · 0 评论