题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=1072
题目大意
从起始地点到终点,最多走6步,中途某些格子可以将步数加回6。问最少多少步能走出去。
思想
这个题相比上一个题,这个题相对简单但是被坑了更久,基本没什么需要多想的,但是卡在了一些小细节上。
比如,这个题也有状态的记录和判重。一开始我用的是当前点坐标和上一个点的坐标和方向来作为记录的状态,后来看了题解后发现是用的当前点的坐标和剩余的步数。所以,哪些参数可以用来确定状态还需要思考。
第二个卡住的地方是now.time和now.spend的位置。我一开始认为,在for循环时,pre不会变,所以now也不会变,所以就把now.time和now.spend的赋值语句放在了for外面。但是,当其中某一步走到时间重置点时,如果放在外面的话,now.time就会在接下来的for循环中一直是6。显然是不对的。。。就这一点卡了一个多小时。。很难受。。在比赛中这就凉了。。
代码
1 |
|
后记
一会去看权游。。今天一天只做了两道题。。确实虚了。。坚持每天做~忙碌的半年啊~