zoj1091(深度搜索

来源:互联网 发布:男生认妹妹心理知乎 编辑:程序博客网 时间:2024/06/05 20:06

撒花,简单题刷得差不多了开始刷其他类型的题啦。


第一次接触深度搜索哈哈,有点理解了,题的答案是看网上自己理解敲的,等下敲个广度出来看看。


#include <iostream>#include <cstring>using namespace std;int step1[8] = {1,1,2,2,-1,-1,-2,-2};int step2[8] = {2,-2,1,-1,2,-2,1,-1};int knight[8][8];void Find(int st1,int st2,int moves){    if(st1 < 0 || st1 > 7 || st2 < 0 || st2 > 7 || moves >= knight[st1][st2])        return;    knight[st1][st2] = moves;    for(int m = 0;m < 8;m++)        Find(st1 + step1[m],st2 + step2[m],moves + 1);}int main(){    string a,b;    while(cin >> a >> b)    {        memset(knight,100,sizeof(knight));        Find(a[0] - 'a',a[1] - '1',0);        cout << "To get from "<< a << " to " << b << " takes " << knight[b[0] - 'a'][b[1] - '1'] << " knight moves." << endl;    }    return 0;}


0 0