摘要: 这道题按照题意直接BFS即可,主要要注意题意中的相遇是指两种情况:一种是同时到达同一格子,另一种是在移动时相遇,如Paris在(1,2),而Helen在(1,2),若下一步Paris到达(1,1),而Helen达到(1,2),这种情况也算是相遇。 阅读全文
posted @ 2017-01-07 16:48 Vincent_Bryan 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 这道题没有找到一条回路,所以不能跟1152一样用数组储存后输出。我采用的方法是DFS加剪枝,直接DFS搜索会超时,优化的方法是在搜索是优先走出度小的路径,比如move1和move2都可以走,但是如走了move1后下一步有7种方向可以走,而走了move2后有2种方向可以走,那我们就优先走move2,具 阅读全文
posted @ 2017-01-07 10:22 Vincent_Bryan 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 这道题嘛,直接使用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) 编辑
摘要: 现在网上的Markdown有很多,各有各的特色,同时也有各自的缺点。比如有的传图片比较麻烦,有的导出pdf需要付费,有的数学公式编辑比较麻烦等等...... 而最近接触到Typora,发现这真是一款良心的Markdown编辑器,图片的上传很方便,而且能够导出pdf,写起文档来感觉很顺手。 官网链接: 阅读全文
posted @ 2016-10-27 01:11 Vincent_Bryan 阅读(279) 评论(0) 推荐(0) 编辑
摘要: makefile介绍 makefile的功能是管理源文件的编译链接,在makefile我们可以定义一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。具体可以参考: http://blog.csdn.net/ruglcc/article/det 阅读全文
posted @ 2016-10-22 19:21 Vincent_Bryan 阅读(268) 评论(0) 推荐(0) 编辑