DFS
豫彧
业精于勤荒于嬉,行成于思毁于随。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
所有子串的全排列(dfs模板)
所有子串的全排列 输出一个字符串里所有的子串的全排列 #include <bits/stdc++.h> using namespace std; char s[10] = {'a','b','c','d','e','f','g'}; bool vis[10]; char ans[10]; int i; void dfs(int n){ if(n == i){ for(int k = 0;k < i;k++){ pr原创 2021-04-05 21:21:56 · 335 阅读 · 0 评论 -
记忆化搜索 滑雪VIJOS-P1011
Description 顺治喜欢滑雪,这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待太监们来载你。顺治想知道载一个区域中最长的滑坡。 区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 顺治可以从某个点滑向上下左右相邻四个点之一,当且仅原创 2020-08-15 20:12:16 · 217 阅读 · 0 评论 -
dfs 从m个数选n个得到各种运算最大最小
用深度优先搜索在m个数里选择n个进行操作 Description: 包含一个整数,从n个数中选取任意m个数进行异或得到的最大值 Input 8 2 1 2 3 4 5 6 7 8 Output 15 1 ^ 1 =1,1 ^ 0 = 1,0 ^ 1 = 1,0 ^ 0 = 0,仍何数亦或 0都为这个数。 选取7和8进行异或,得到最大的值15。 #include<bits/stdc++.h> using namespace std; long long a[12]; long long sum,t原创 2020-08-14 11:53:12 · 477 阅读 · 0 评论 -
dfs 1~9全排列
使用DFS,输入n,输出1~n的所有全排列 #include<stdio.h> int n,a[10],book[10]; void dfs(int step)//step 表示当前在第几个位置 { int i; if(step==n+1)//如果step==n+1表示前n个数字已经放好 { //输出 for(i=1;i<=n;i++) printf("%d",a[i]); printf("\n"); } for(i=1;i<=n;i++) i原创 2020-08-04 16:52:53 · 294 阅读 · 0 评论 -
迷宫二T1596 bfs与dfs
一道经典迷宫题目:使用bfs与dfs都可以解,bfs时间复杂度高一点 非常非常好的题 Description> 第一行输入两个整数n和 m,表示这是一个 n×m 的迷宫。接下来的输入一个 n 行 m 列的迷宫。其中 ‘S’ 表示蒜头君的位置,’*‘表示墙,蒜头君无法通过,’.‘表示路,蒜头君可以通过’.'移动,'T’表示迷宫的出口(蒜头君每次只能移动到四个与他相邻的位置——上,下,左,右)。 输出蒜头君逃出迷宫的最少步数,如果蒜头君无法逃出迷宫输出 −1。 Inpot> 3 4 S**. …*.原创 2020-07-27 22:45:55 · 336 阅读 · 2 评论 -
N皇后问题 HDU - 2553详解
N皇后问题 HDU - 2553 DFS经典问题八皇后问题: 我使用的是DFS、回溯、递归法 题目: 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。 你的任务是,对于给定的N,求出有多少种合法的放置方法。 In Put 共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。 输入:1 8 5 0 Out Put 共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。 输出:原创 2020-06-27 21:28:24 · 289 阅读 · 0 评论
分享