随笔分类 -  数据结构与算法

摘要:这是一道poj1184的题目,由于求解的是最优解,所以首先想到的就是使用广度优先搜索。对于这道题目我同时使用set容器,来作为状态判重。/* * POJ 1184 聪明的打字员 * 版本1 : 普通的广度搜索 ,使用set进行状态判重 */#include#include#include#include//#include#define CODE_LENGTH 6 using namespace std;typedef struct str{ int step; string code; int pos; //光标的位置 str(){} //光标的初始位置为0 str(int ... 阅读全文
posted @ 2012-10-16 12:10 梦你所梦 阅读(159) 评论(0) 推荐(0)
摘要:这里是poj1915上的一道在棋盘上搜索走步路径的题目:代码如下(使用BFS):/* * POJ 1915 * 使用广度优先搜索寻找最佳路径 * 本题可以优化的地方:如果只是为了获得最小的到达目标节点的步数, * 那么可以直接在Node的结构体中定义step域,然后在搜索过程中逐步更新step */#include#include#include#includeusing namespace std;#define MAXSIZE 301#define NOT !int size;int startX,startY,endX,endY;int minStep;typedef struct No 阅读全文
posted @ 2012-10-16 12:03 梦你所梦 阅读(896) 评论(0) 推荐(0)
摘要:华容道游戏是非常经典的BFS应用的题目。下面是几个我参考过的链接:使用java语言实现,充分体现OOAD和数据结构的应用,讲的非常详细,但是太过于复杂了:http://www.cppblog.com/tx7do/archive/2006/09/18/12691.html简单版本的介绍,非常有用,而且有完整的源代码:http://blog.chinaunix.net/u/19651/showart_395172.html虽然讲的详细,但是代码也成这副样子,值得同情:http://www.fjptsz.com/xxjs/xjw/rj/110.htm下面是我通过这道题的一些体会:1、重复状态的判重方 阅读全文
posted @ 2012-10-16 11:56 梦你所梦 阅读(313) 评论(0) 推荐(0)
摘要:下面是poj3009 curling2.0的题目。http://acm.pku.edu.cn/JudgeOnline/problem?id=3009使用的是dfs搜索,代码如下,从中可以体会到dfs搜索的常规特点://POJ3009 Curling 2.0//使用深度搜索,这题有两个地方需要注意://1、当球与箱子相邻的时候,球无法滚动,也无法装破箱子。//2、题目有一个限界,当球滚了10次还没有进入目标点,看做不能到达。#include#include#include#define __DEBUG 0using namespace std;#define MAX 30int map[MAX] 阅读全文
posted @ 2012-10-16 11:52 梦你所梦 阅读(389) 评论(0) 推荐(0)