小 (→摘要: 难度) |
小 (→摘要: 错误原因) |
||
第2行: | 第2行: | ||
[[分类:深度优先搜索]][[分类:广度优先搜索]] | [[分类:深度优先搜索]][[分类:广度优先搜索]] | ||
==摘要== | ==摘要== | ||
− | {{信息题|Tempter of the Bone|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}68572#problem/K|2|100|time=2015-02-06 14:43:00}} | + | {{信息题|Tempter of the Bone|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}68572#problem/K|2|100|超时|0|time=2015-02-06 14:43:00}} |
*来自寒假练习:[http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68572 Only a signing tool !] K题 | *来自寒假练习:[http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68572 Only a signing tool !] K题 | ||
*原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 | *原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 |
题目链接 | 难度等级 | 完成状态 | 完成分数 | 最后编辑时间 | 失误原因(初次提交分数) |
---|---|---|---|---|---|
Tempter of the Bone | ★★☆☆☆ | 答案正确 | 100 | 2015-02-06 14:43:00 | 超时(0) |
在n*m的地图上求从S走到D是否能够恰好t步走完。
显然还是搜索题,裸搜会T,所以要剪枝,加上下面两个剪枝好像就Acceptable了:
这是不太好想的,我的确用了百度优先搜索[1]……限制语句是这样的
- ((ex+sx+ey+sy+t)%2)//(ex,ey)为终点,(sx,sy)为起点//
想到这样一个矩阵就比较好理解,x+y为偶数时 为0 否则为1:
- 0 1 0 1 0
- 1 0 1 0 1
- 0 1 0 1 0
- 1 0 1 0 1
由图可知,任意一个点相邻的必然是与本身相反的值,也就是说,要想走到与本身值相同的点必然要走偶数步,同理,要想走到与本身相异的值的点必然要走奇数步; 所以,当两个位置的x+y奇偶性相同时(同为0或同为1)若时间为奇数 则必然无法到达;当两个位置的奇偶性不同时(一个为1,另一个为0)若时间为偶数也必不能到达,可以被剪枝。
代码如下
- (abs(sx-ex)+abs(sy-ey)>t)||(n*m-w<t)//w代表墙的个数//
- 意思是:
1010.cpp代码已折叠
展开折叠内容
|
---|
显示/移除行号
|