DFS
CuriousLiu
这个作者很勤奋,什么都没留下...
展开
-
POJ2386LakeCouting
#include <iostream>using namespace std;char map[150][150];int n,m;int dx[8] = {1,0,-1,0,1,-1,1,-1};int dy[8] = {0,1,0,-1,1,-1,-1,1}; void dfs(int x,int y){if(x>=n||x<0||y>=m||y...原创 2018-04-13 14:34:27 · 154 阅读 · 0 评论 -
北大暑期课期末 c:马走日
dfs基础题,注意回溯,一开始因为在进入的时候忘了加一个判断条件,输出不了,稍微改了一下以后能输出32我就知道稳了应该在遍历时候能用数组简化一下代码量题目链接#include <iostream>#include <cstring>using namespace std;int n,m,x,y;int mark[20][20];int judge()...原创 2018-08-03 21:13:05 · 268 阅读 · 0 评论 -
百练 红与黑(DFS)
遇到过很多这种题了,统计一个位置的联通区域,需要注意在寻找后要把这个位置的char改变为不能移动的那种为什么感觉这个题整理过...如果之前有肯定是我傻了类似于POJ Lake Couting 和 蓝桥杯2018比赛的一个湖的题题目链接//暑期练习27红与黑 计算连通区域 因为可以重复走? #include <iostream>using namespace std...原创 2018-07-30 13:26:20 · 584 阅读 · 0 评论 -
POJ 3620.Avoid The Lakes
这道题很像是之前遇到的LakeCounting 属于使用dfs遍历的题,比较基础,可以作为dfs入门题目大意:题目给出一个二维数组,要求判断最多的连通区域有几片水,蓝桥杯比赛上好像就做过很类似的题,只有上下左右才叫连通题目链接#include <iostream>#include <cstdlib>#include <algorithm>#i...原创 2018-07-20 19:29:36 · 222 阅读 · 0 评论 -
百练 4103:踩方格
基础的dfs对于这种不能重新回去的,只能走一次的题,需要使用一个数组存储记忆,并且在DFS之后进行回溯,回溯成没有被访问过的状态题目链接//百练4103 踩方格 DFS深度优先搜索 基础递归 找到递归带什么参数好#include <iostream>#include <cstring>#include <algorithm>using na...原创 2018-07-25 19:57:17 · 500 阅读 · 1 评论 -
百练 2755:神奇的口袋
一道比较基础的递归题,递归的回溯问题自己还需要理解,递归的算法O(2^n)好像也能过?大概是由于数据规模不够大吧。。题目链接#include <iostream>using namespace std;int n;int a[105];int count = 0;void search(int value,int x){// printf("value = %d...原创 2018-07-24 21:33:19 · 267 阅读 · 0 评论 -
POJ 1088.滑雪
这个题本来是DP的,但是自己不太会,根据网上的代码学习以后发现dfs的方式自己更好理解,主要在于dfs函数的代码find(x,y)的返回值代表这个位置的已知最大连续值,这样在递归时直接就可以理解成那个位置的最大连续值,从而直接使用题目链接/* 滑雪 百练POJ1088 要求不断的单调递减 通过这个题发现很多DP问题都在于记忆化遍历 一定要记住一个东西 且记住的东西一般等于ma...原创 2018-07-24 21:22:08 · 182 阅读 · 0 评论 -
DFS 简单的全排列
使用递归回溯算法实现1-9数字的全排列,属于最简单的状态转移BFS之一,很多题目首先需要实现这一个基础功能#include <iostream>using namespace std;int vis[15]={0};int cunchu[10];void bfs(int start){ if(start==10) { for(int j=1;j<10;j++) { pri...原创 2018-04-13 15:26:42 · 274 阅读 · 0 评论 -
POJ 1321棋盘问题
棋盘问题Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 59420 Accepted: 28519Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输...原创 2018-04-13 14:39:59 · 159 阅读 · 0 评论 -
百练 棋盘问题(DFS)
一开始想的时候标记想错了,其实标记只要一组对列的标记就够,这样在行往下的过程中,行每行确定只放一个了,与一般dfs还有一点不同的是,这个有可能出现棋子数不足的情况,这就要求在dfs过程中,需要分放和不放两种,在放的部分中代码再体现出行的标记变换还有个有点阴的地方是#是可以放的,迷宫题做多了都默认#是不行的了 - -题目链接#include <iostream>#inc...原创 2018-07-30 13:00:54 · 284 阅读 · 0 评论