摘要:
这道读懂题意就很简单了,就宽搜就OK了。。题意其实就是在一个8*8的国际象棋棋盘上下棋,骑士以马的形式跳(“日”字型,跟中国象棋一样,没拌点) 1 #include<iostream> 2 #include<string> 3 #include<queue> 4 #include<memory.h> 5 using namespace std; 6 7 struct node 8 { 9 int row; 10 int colum; 11 int m; 12 }; 13 int main() 14 { 15 int t; 16 cin>&g 阅读全文
摘要:
sicily上面的三道“简单魔板”的变形,开始以为数据变大了第一道题的解法行不通了,其实不然。网上看到用康托展开来进行存储状态的,发现其实对于这道题没能发挥康托展开的强大威力。下面是找到别人的代码,自己加了一些注释(呜呜,我不想剽窃的。。。只是转载不了。。)原文出处http://blog.csdn.net/bingleaf/article/details/6248371关于康托展开,百度百科讲得非常详细了,看下就知道是什么东西了,算法实现也很简单,主要是其思想。。其实这道题没必要使用康托编码,这里没发挥它的强大作用。因为从开始状态往下一层一层的搜不会出现太多的状态(试了下1000000步也只是 阅读全文
摘要:
这道题用宽搜把从开始状态往下10层变化的所有结果都找出来存在一个map里面(测试了一下,一共只有10000种情况不会太大),然后再去查找目标的情况是否在map里面,如果不在则说明不行,如果在的话看其从开始的状态变到这里用的步数是否超过了规定的N宽搜的话用一个队列就可以实现了 1 #include<iostream> 2 #include<map> 3 #include<string> 4 #include<queue> 5 #include<stdio.h> 6 using namespace std; 7 8 string A(st 阅读全文