![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dfs
文章平均质量分 71
为什么这么多叫solo
不要停下你的脚步
展开
-
poj1780
涉及算法:非递归的dfs题目大意:求出一个10^n+n-1的序列,其中包含了所有的0~10^n-1的数题目分析:由于序列长度的限制,我们想要一个一个的写出0~10^n-1所有的数,是不可能的。由于10^n+n-1比我们所需要输出的数的个数只多n-1,所以基本上我们所求的序列每一位都要表示一个数,即第i个数的前n-1位是第i-1个数的后n-1位,而第一个数由于前面没有数字,所以第1个数就只能原创 2015-09-30 20:43:29 · 1527 阅读 · 0 评论 -
poj2488
涉及算法:dp题目大意:给定一个p行q列的棋盘,问是否能不重复的走过棋盘的每一格,若能则按字典顺序输出路径注意:我们只需要在搜索时按字典顺序搜索,就能按字典顺序输出路径代码如下:方式一:package com.solo.dfs;import java.util.Scanner;public class Main_2488 { static int a,b;/原创 2016-03-05 20:09:51 · 337 阅读 · 0 评论 -
poj3083
涉及算法:bfs、dfs题目大意:给定一个矩形区域,由空白区域可障碍物组成,给定起点和终点,问:以左优先的方式走,从起点走到终点需要走过多少格?以右优先的方式走,从起点走到终点需要走过多少格?输出从起点走到终点最少需要走过多少格?题目分析:左优先:以当前的朝向为上,若左边可以走就走左边,若左边不可以走就走上边,若左边和上边都不可以走则走右边,若左边上边右边都不可以走则走原创 2016-03-06 17:13:16 · 436 阅读 · 0 评论 -
poj1416
设计算法:dfs题目大意:给定一个数a,将a从中间分开拆成几份,使得各部分的和sum最接近给定的目标数target,输出sum和拆分方案。注意:1、sum一定不能大于target,若所有方案的sum都大于target,则输出error。2、对于所求的sum有两种以上的方案可以实现,则输出rejected。题目分析:我们可以按照上如所示的方式进行搜索,1253拆分成(12原创 2016-03-07 10:14:08 · 486 阅读 · 0 评论 -
poj2531
涉及算法:dfs题目大意:网络中有n台电脑,给出一个矩阵C表示电脑两两间通信需要的流量,例如C[i][j]=7表示电脑i和电脑j通信需要的流量为70,现在讲电脑分成两个集合,只有在不能集合中的电脑才需要通信,相同集合中的电脑不需要通信,问:最大的通信流量。题目分析:将电脑分为两个集合:集合0和集合1,每台电脑用两种选择,要么加入集合1要么加入集合2,这显然是一个双入口的dfs代码如下:原创 2016-03-07 15:13:02 · 449 阅读 · 0 评论 -
poj1129
感觉没有用到什么算法,直接模拟就是题目大意:无线网络中n个结点,每个结点都需要用信道来转发信息,但是为了避免干扰,邻居结点不能采用同一个信道,问对于给定的n和邻居关系图,最少需要多少信道?题目分析:A:BCD表示结点A和BCB相邻,可以用数组0~25来替代字母A~Z,即0:123;这方便我们用二维数组来表示相邻关系,例如:net[2][4]=1:表示2和4相邻代码如下:原创 2016-03-07 15:14:01 · 572 阅读 · 0 评论 -
poj3009
涉及算法:dfs题目大意:给定一个矩形的区域,该区域由空白区域和障碍组成,给定起始点和终点,问将一颗石头从起点移动到终点最少需要多少步?注意:石头只能往上下左右四个方向移动,不能往对角线方向移动你往任意一个方向仍出石头,它都会滑动,除非它还没有移动就遇到了障碍物石头一旦扔出去,只有在以下几种情况下才会停下来1、撞击到障碍物(此时障碍物会消失,石头会停在障碍物前面)2、石原创 2016-03-07 15:14:31 · 349 阅读 · 0 评论 -
poj1321
涉及算法:深度搜索题目大意:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。棋盘有空白区域和棋盘区域,棋子只能放在棋盘区域代码如下:import java.util.Scanner;public class Main_1323 {原创 2015-09-17 22:24:34 · 410 阅读 · 0 评论