
搜索
文章平均质量分 78
非著名de
这个作者很懒,什么都没留下…
展开
-
白书2.1.5宽度优先搜索(迷宫的最短路径)
问题描述:迷宫的最短路径给定一个大小为N*M的迷宫。迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。假定从起点开始一定能够走到终点。输入:10 10#.######.#......#..#.#.##.##.#.#........##.##.####....#....#.#######.#....#原创 2016-01-20 18:46:52 · 486 阅读 · 0 评论 -
POJ NO.3187 Backward Digit Sums(DFS)
问题描述:给出n,sum。类似于杨辉三角,让你求出最顶尖为sum的第n层所有元素。注意:答案有多种的按照字典序较小的那个输出。题目链接:点击打开链接代码:#include#include#include#include#include#include#define INF 0x3f3f3f3f#define MAX 30000using namespace std原创 2016-01-28 18:59:17 · 305 阅读 · 0 评论 -
POJ NO.2251 Dungeon Master(BFS,三维迷宫)
问题描述:给你一个三维地牢,‘.’代表可以走的点,‘#’代表不可走的点,‘S’代表开始点,‘E’代表结束点。问从‘S’开始能不能走出地牢,能的话要用多长时间,不能输出不能,输入输出见原题目。题目链接:POJ NO.2251思路:多了一个方向,其他和普通bfs一样。代码:#include#include#include#include#include#include原创 2016-02-21 15:14:15 · 481 阅读 · 0 评论 -
POJ NO.1979 Red and Black(DPS,搬黑砖,,,)
问题描述:一个广场由黑砖和红砖组成,给你一个起点看你(起点算是黑砖)能办多少黑砖。题目链接:点击打开链接思路:问题转换 ----> 把所有能到达的 ‘ . ’(黑砖)全换成某个字符(如‘ e ’);先找到起点,题目中没给出需要自己遍历数组找到,然后以此为起点,进行替换(把‘ . ’换成‘ e ’要用到DFS);最后再遍历数组计算出所有的‘ e ’的个数即可。代码原创 2016-01-21 17:42:17 · 422 阅读 · 0 评论 -
POJ NO.3669 Meteor Shower(经典BPS,,,)
问题描述:给你一个整数M表示流行的个数,然后给你M组数据每组包含3个整数,分别表示坐标和降落的时间。题目链接:点击打开链接思路:先把时间都标记好,在跑一遍BFS即可。注意:走过的点不能再走!!!还要注意时间,这种解法很费时所以将输入输出流换成了scanf,,,,,代码:#include#include#include#include#define INF 0x3原创 2016-01-22 21:36:57 · 362 阅读 · 0 评论 -
POJ NO.3984 迷宫问题(BFS,保存路径)
问题描述:给你一个矩阵,问你从左上角走到右下角最短路径。题目链接:POJ NO.3984代码:#include#include#include#include#include#include#include#include#include#include#include#define INF 0x3f3f3f3f#define PI 3.1415926#d原创 2016-02-21 15:20:57 · 622 阅读 · 0 评论 -
POJ NO.3050 Hopscotch(DFS,set)
问题描述:给你一个5 * 5的矩阵,从某点出发(出发点可以回去),移动6次(上下左右皆可移动)。问通过移动6次总共可以构成多少个不同的串。题目链接:POJ NO.3050思路:把每个点都跑一遍DFS, 然后把移动6次后的数存进序列。用到了set,很简单。代码:#include#include#include#include#include#include#i原创 2016-02-17 19:43:24 · 250 阅读 · 0 评论 -
POJ NO.2718 Smallest Difference(DFS)
问题描述:给你一些整数(0,1,2,......,9)个数大于等于2小于等于10,它们互相组合算绝对值,让你求出最小的绝对值!注意:1. 0---9这是个数每个最多出现一次2. 不存在前导0的情况题目链接:点击打开链接思路:假设长度为n那么只有两个数长度相等(或者长度差为1)时最小,我们就可以枚举出n/2个元素,再把剩下的组合找出来作差比较即可。代码:#原创 2016-01-25 20:11:26 · 367 阅读 · 1 评论 -
白书1.6.3 抽签问题(第一个搜索代码...)
问题描述第一种做法(暴力搜索)O(n4)简单易懂,直接上代码#include#includeusing namespace std;const int MAX = 101;int main(){ int n, m, arr[MAX]; scanf("%d%d", &n, &m); for(int i = 0; i < n; i++原创 2016-01-17 16:24:48 · 411 阅读 · 0 评论 -
白书2.1.4 深度优先搜索(部分和问题)
问题描述:部分和问题给定n个整数,从中取出若干个数,使它们的和恰好为k;input:n,k,arr[100]很简单直接上代码#include#includeusing namespace std;const int MAX = 100;int n, arr[MAX], k;void solve();int dfs(int i, int sum);i原创 2016-01-19 15:58:28 · 365 阅读 · 0 评论 -
POJ NO.2386 Lake Counting(算水洼)
问题描述:题意:给你一个row*col的矩阵表示一块田地,上面的'W'代表积水,'.'表示干地,问这块田地里面的积水能汇聚成几片水洼。题目链接:点击打开链接思路:从任意的‘W’开始,不停地把邻接的部分用‘.’代替。1次DFS后与初始的这个W连接的所有W就都被替换成了‘.’,因此知道途中不再存在W为止,总共进行的DFS次数就是答案。----《挑战程序设计》上代码:#include#原创 2016-01-19 17:24:39 · 2662 阅读 · 0 评论 -
FZU NO.2150 Fire Game(枚举+BFS)
题意:从任意有杂草的两个点(“#”表示杂草)开始,下一单位时间会从当前的着火点向上下左右扩散,求最小时间。原题描述:DescriptionFat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns). At the beginn原创 2016-05-22 10:31:46 · 428 阅读 · 0 评论