dfs
practer
懒得写的简介
展开
-
棋盘问题 (dfs) POJ - 1321
题目大意:给一个N*N的区域,和M个棋子,询问最后有多少种摆的方法,其中每个棋子不能放在同一行和同一列。思路:对每一行进行dfs,dfs时使用book数组(双重标记)标记。#include#include #define N 9char z[N][N];//开空间存储棋盘int num;//计算总数int bookh[N];//标记横行是否有过棋子int bookl[N];//标记原创 2017-05-05 18:43:23 · 228 阅读 · 0 评论 -
迷宫问题(dfs)POJ - 3984
题目大意:有一个5*5的迷宫 0 表示可以走 1 表示不可以走,输出走出去的最短路线 从(0,0)到(4,4)思路:dfs和bfs好像都可以 弱 当时只会dfs写的dfs 很简单的一个题,dfs写下来就行了。不过需要用一个数组存储走过的路。数据有唯一性,优先右下方就可以过了 。bfs的话应该也可以不过需要记录前驱,最后输出 听说这个题只有一组数据,打印就可以了0-0原创 2017-05-05 20:32:33 · 515 阅读 · 1 评论 -
Oil Deposits(dfs)HDU - 1241
题目大意:有一大块油田,现在要数总共有多少片油田,有一个角或边联通即可算为同一片。思路:dfs 如果有一块地方是@则以这个地方为起点dfs 把所有与其联通的 @ 全部变为 * 最后计算有有多少块即可(没有使用book标记,直接把油田改变) #include#includeint n,m;char z[105][105];int check(int a,int b){//检查是原创 2017-05-05 21:13:45 · 300 阅读 · 0 评论 -
Find The Multiple (dfs)POJ - 1426
题目大意:找到一个数的倍数并且这个数只能由1和0组成思路:dfs递归查找,两种dfs的走法#includeint flag=0;int n;void dfs(int i,unsigned long long j);int main(void){ while(scanf("%d",&n),n){ flag=0; dfs(0,1); } return 0; }原创 2017-05-05 19:36:41 · 192 阅读 · 0 评论