题意:X是坑,'.'是冰层,冰层走过一次后变成坑。问能不能从 sx,sy开始走, 在ex,ey处掉入坑中。
做法:bfs一下,X处如果不是终点,那肯定是不能走的。 如果是终点,且是X,就直接返回可以。 如果是‘.’那都可以走。走完之后把这个格子变成‘X’。复杂度为地图大小*2。...
分类:
其他好文 时间:
2015-05-01 12:02:52
阅读次数:
99
题意:这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始 Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟只能从一个坐标走到相邻四个坐标中的其中一 个。魔王每t...
分类:
其他好文 时间:
2015-04-25 09:19:34
阅读次数:
159
很典型的dfs题,但是涉及到很多的剪枝 。奇偶剪枝:是数据结构的搜索中,剪枝的一种特殊小技巧。现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点,s|||+———e如图所示(“|”竖走,“—”横走,“+”转弯),易证abs(ex-sx)+abs(ey-sy)为此问题类中任意情况下...
分类:
其他好文 时间:
2015-04-17 17:52:48
阅读次数:
91
感觉这题挺水的,dfs 6000ms过
#include
#include
#define maxn 1000+5
using namespace std;
int n,m;
int mapp[maxn][maxn];
int visit[maxn][maxn];
int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int sx,sy,ex,ey;
int fl...
分类:
其他好文 时间:
2015-04-12 16:18:20
阅读次数:
136
不开心,简单的三维bfs
#include
#include
using namespace std;
string str1,str2;
int n;
int sx,sy,sz,ex,ey,ez;
char mapp[11][11][11];
int dir[6][3]={{0,0,1},{0,0,-1},{1,0,0},{-1,0,0},{0,1,0},{0,-1,0}};
int re...
分类:
其他好文 时间:
2015-04-10 22:27:57
阅读次数:
133
奇偶剪枝是数据结构的搜索中,剪枝的一种特殊小技巧。
现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点,
s
|
|
|
+
—
—
—
e
...
分类:
其他好文 时间:
2015-04-08 16:29:28
阅读次数:
150
Problem Description
Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)……
这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟只能从一个坐标走到相邻四个坐标中的其中一个。魔王每t分钟回地牢视察一次,若发现Ignatius不在原位置便把他拎回去。经过若干次的尝试,Ignatius已画出整个地牢...
分类:
其他好文 时间:
2015-04-07 12:06:16
阅读次数:
134
#include
using namespace std;
#define INF 0x7ffffff
#define maxn 105
typedef pair P;
int dp[maxn][maxn], n, m;
char maze[maxn][maxn];
int sx, sy, ex, ey;
int go[4][2] = {{-1,0},{1,0},{0,-1},{0,1}...
分类:
其他好文 时间:
2015-03-14 16:58:43
阅读次数:
123
Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)……
这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。
做法:因为钥匙最多有10把,2^10 =1024,所以可以把10把钥匙有没有的情况记录在 一个数中。 num的第三维就是 钥匙 拥有的状态。然后就和普通的bfs一样了。...
分类:
其他好文 时间:
2015-03-05 20:59:41
阅读次数:
149
其实冒号后的内容是初始化成员列表,一般有三种情况: 1、对含有对象成员的对象进行初始化,例如, 类line有两个私有对象成员startpoint、endpoint,line的构造函数写成: line(int sx,int sy,int ex,int ey):startpoint(s...
分类:
编程语言 时间:
2015-02-26 18:20:34
阅读次数:
166