
搜索
sdjzujxc
这个作者很懒,什么都没留下…
展开
-
搜索简单题——Knight Moves
#include#include#includeusing namespace std;struct node{ int x; int y; int step;};int a[]={-2,-1,1,2,2,1,-1,-2};int b[]={1,2,2,1,-1,-2,-2,-1};int countStep(node start,原创 2012-10-12 13:29:03 · 360 阅读 · 0 评论 -
poj 2488
题意:国际象棋中马的走法,给出8*8的棋盘,问能否遍历所有的格子。思路:dfs记录路径。#include#includeusing namespace std;int move[8][2]={{-2,-1},{-2,1},{-1,-2},{-1,2},{1,-2},{1,2},{2,-1},{2,1}};//字典序在此体现struct node{ int x,y;}st原创 2012-12-10 12:40:21 · 313 阅读 · 0 评论 -
Rescue
Rescue Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 11 Accepted Submission(s) : 5Font: Times New Roman | Verdana | GeorgiaFont Size原创 2012-11-24 16:48:18 · 603 阅读 · 1 评论 -
HDU 1010
题意:给定起始点与终止点,中间有些地方有墙,其他地方都可以走,走一格花费1,上下左右走,问能否在t时间恰好到达终点。思路:dfs。这个需要一个奇偶剪枝,第一次学。TLE了几次,看的网上解题报告才知道用到这个剪枝。 奇偶剪枝:是数据结构的搜索中,剪枝的一种特殊小技巧。现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点, s原创 2012-11-22 20:11:13 · 314 阅读 · 0 评论 -
poj 3172 Scales
题意:已知天平秤的最大容量,给出若干砝码的重量。求解最多的重量。思路:开始的时候看着像01背包的问题。但是此专题为搜索,看看数据很大,01估计会RE,所以进行搜索解决。寻找容量差值最小。dfs。#include#include#includeusing namespace std;__int64 w[1005],sum[1005];//sum中存放前i个砝码的重量int原创 2012-11-12 19:14:45 · 463 阅读 · 0 评论 -
poj 1979
题意:一个图中只有红点与黑点,一个人站在一个黑点,红点不能到达,问他能到达的黑点的个数。思路:bfs。没想到还有这么水的广搜!!!!!!#include#include#include#includeusing namespace std;int vis[25][25];char map[25][25];int dirx[]={1,-1,0,0};int d原创 2012-10-26 12:12:01 · 765 阅读 · 0 评论 -
poj 2251
题意:三维空间内从起点到终点的最短距离。只能向上下,东西,南北走。能够走到输出步数,否则输出Trapped。思路:较简单的bfs。只不过这个是一个三维的,与二维的基本上是一样的,要注意x,y,z三个方向在数组中的表示,刚开始我把方向弄错了,输入的跟bfs中的方向没有对起来,浪费了一些时间修改啊。把bfs中的vis【】【】【】中的x,y,z弄错了,一直没有出现结果,改了之后就出结果了。#in原创 2012-10-25 20:57:21 · 2964 阅读 · 0 评论 -
poj 3083
题意:给出一个类似迷宫的地图,求靠左走,靠右走,最短的路径。思路:dfs+bfs。此题相当的纠结,方向的把握啊,有点小难啊……(方向转换以后在补上吧,这次就不先写了)总之要找到来时的路,然后才能判断左右。#include#include#include#include#include#includeusing namespace std;struct state原创 2012-10-30 21:52:23 · 421 阅读 · 0 评论 -
poj1190 生日蛋糕
点击打开链接题意看链接,因为是汉语版的题目。思路:据说dfs,还是基础的经典dfs。可叹,自己还是不怎么会啊………………#include#include#include#includeusing namespace std;#define inf 10000000int n,m,s;void dfs(int num,int leftV,int r,int h原创 2012-10-20 17:07:10 · 523 阅读 · 0 评论 -
poj 3009
题意:给定一个m*n的网格,在这些网格上一些地方有障碍物,给定起点与终点的位置,当石头从起点开始走,撞上障碍才会转弯,否则会一直沿着来时的方向继续前进。撞到障碍后停在障碍前的位置,障碍消失。然后石头可以选择四个方向(相邻处无障碍的方向)前进,问至少需要停多少次才能从起点到达终点。不能到达或者多余10步后游戏失败。如果能到达输出最少的步数,否则输出-1.思路:dfs。此题刚开始的时候选择方向加值原创 2012-10-17 19:25:03 · 3005 阅读 · 4 评论 -
Graph Coloring
题意:给出一些相连的点,初始均为白色。现在将其中的一些点染成黑色,但是相邻的两个点不能同时为黑色。问最多有多少个黑点,并且把这些点输出。思路:dfs。#include#includeusing namespace std;int map[105][105];int sumStep,tmp,step[105];int color[105];int n,m;void原创 2012-10-15 22:43:28 · 399 阅读 · 0 评论 -
Collecting Beepers(简单的dfs)
题意:给出起点坐标与若干个点的位置,从起点出发经过那若干个点之后在回到起点的最短路程,只能向上下左右走一个格。思路:深搜+回溯。#include#include#includeusing namespace std;struct node{ int x; int y;}p[500];int len,tmp,sx,sy;int n,vis[原创 2012-10-13 16:47:34 · 498 阅读 · 0 评论 -
Cow Picnic
题意:某人有很多牧场,他的牛在一些牧场中放牧,问有多少牧场所有牛都可以到达。思路:水题。刚开始用bfs,检测每一个牛所能到达的牧场,但是很遗憾的MLE若干次,故而求助网络,看他们都有的dfs,仅看到一位仁兄用的bfs,但是他用了vector,我不怎么会用,遂改用dfs做,判断到达每个牧场的牛的个数,进行对比是否==k,是牧场数加1,。#include#include#include原创 2012-10-13 12:09:58 · 386 阅读 · 0 评论 -
A - Shortest path of the king
A - Shortest path of the kingCrawling in process...Crawling failedTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmitStatusPracticeCodeForces 3ADescription原创 2012-12-10 13:00:22 · 512 阅读 · 0 评论