zoukankan      html  css  js  c++  java
  • 简单的暴力搜索

    就是一个国际象棋的棋盘,可以八个方向走,问从起点到终点的最少步数是多少,还给出一个一个点是不可走的,简单的bfs
    #include<stdio.h>
    #include<algorithm>
    #include<iostream>
    #include<string.h>
    #include<queue>
    #include<math.h> 
    using namespace std;
    int vis[10][10];
    int dis[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1} ;
    struct node
    {
        int x,y,step;
    };
    
    int sx,sy,ex,ey,ix,iy;
    int bfs()
    {
        int ans=0;
        queue<node>q;
        node in,out;
        in.x=sx;
        in.y=sy;
        in.step=0;
        vis[sx][sy]=1; 
        q.push(in);
        while(!q.empty())
        {
            in=q.front();
            q.pop();
            if(in.x==ex&&in.y==ey)
            {
               return  in.step; 
            }
            else
            {
                for(int i=0;i<8;i++)
                { 
                out.x=in.x+dis[i][0];
                out.y=in.y+dis[i][1];
                out.step=in.step;
                if(vis[out.x][out.y]||out.x<1||out.x>8||out.y<1||out.y>8||(out.x==ix&&out.y==iy)) 
                continue;
                else
                {
                    vis[out.x][out.y]=1;
                     out.step++;
                     q.push(out);
                }
               } 
            }
            } 
        //    return out.step;
        }
    int main()
    {
        int t=0;
        while(scanf("%d %d %d %d %d %d",&sx,&sy,&ex,&ey,&ix,&iy)!=EOF)
        {
            memset(vis,0,sizeof(vis));
            printf("Case %d: %d
    ",++t,bfs());
        }
        return 0;
    } 
  • 相关阅读:
    android工程混淆和反编译
    php+列出目录文件
    php+大文件管理
    支持粘贴图片的富文本编辑器
    web上传整个文件夹
    文件夹管理
    断点续传
    超大文件上传方案
    ueditor+word粘贴上传
    java+大文件上传
  • 原文地址:https://www.cnblogs.com/NaCl/p/9580170.html
Copyright © 2011-2022 走看看