摘要: 这道题嘛,直接使用DFS搜索,然后莫名其妙地AC了。后来看了题解,说是move的顺序不同的话可能会导致超时,这时便需要剪枝,真是有趣。原来自己是误打误撞AC了,hhh。题解还有另一种解法是先把一条完整的路储存在数组里,输入i的时候,就从i位置起把数组循环输出一遍,真是666的解法呀,果然不能被传统的 阅读全文
posted @ 2017-01-06 23:27 Vincent_Bryan 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 题意是给出一个3*3的黑白网格,每点击其中一格就会使某些格子的颜色发生转变,求达到目标状态网格的操作。可用BFS搜索解答,用vector储存每次的操作 阅读全文
posted @ 2017-01-06 19:51 Vincent_Bryan 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题意为给出两个四位素数A、B,每次只能对A的某一位数字进行修改,使它成为另一个四位的素数,问最少经过多少操作,能使A变到B。可以直接进行BFS搜索 阅读全文
posted @ 2017-01-06 19:34 Vincent_Bryan 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 相对1150题来说,这道题的N可能超过10,所以需要进行排重,即相同状态的魔板不要重复压倒队列里,这里我用map储存操作过的状态,也可以用康托编码来储存状态,这样时间缩短为0.03秒。关于康托展开可以参考,其可用数学归纳法证明:http://www.cnblogs.com/1-2-3/archive 阅读全文
posted @ 2017-01-06 19:21 Vincent_Bryan 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 此题可以使用BFS进行解答,使用8位的十进制数来储存魔板的状态,用BFS进行搜索即可 阅读全文
posted @ 2017-01-06 19:03 Vincent_Bryan 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 这是一道典型的最短路问题,直接用Dijkstra算法便可求解,主要是需要考虑输入的点是不是在已给出的地图中,具体看代码 阅读全文
posted @ 2017-01-06 18:24 Vincent_Bryan 阅读(251) 评论(0) 推荐(0) 编辑