zoukankan      html  css  js  c++  java
  • OpenJudge 2727:仙岛求药

    代码稍微有点丑^_^

    懒得做注解^_^

    不过应该不难理解

    #include<bits/stdc++.h>
    using namespace std; 
    int dx[10]={0,1,-1,0,0};
    int dy[10]={0,0,0,1,-1};
    int m,n,i,j;
    int a[50][50],ans,xx[50][50],f[50][50];
    bool biao=false;
    void dfs(int x,int y,int sum)
    {
        if(sum>=f[x][y]) return;
        f[x][y]=sum;
        if(a[x][y]==0) return;
        if(ans!=0&&sum>=ans) return;
            
        
        if(a[x][y]==2) 
        {
            
            ans=sum;
            biao=false;
            return;
        }
        
        for(int i=1;i<=4;i++)
        {
            int nx=x+dx[i],ny=y+dy[i];
            if(xx[nx][ny]==0)
            {
                xx[nx][ny]=1;
                dfs(nx,ny,sum+1);
                xx[nx][ny]=0;
            }
            
        }
        
    }
    int main()
    {
        while(cin>>n>>m)
        {
    
            if(m==0&&n==0) break;
            char c;
            int st,ed;
            
            memset(a,0,sizeof(a));
            memset(xx,0,sizeof(xx));
            memset(f,0x7f,sizeof(f));
            biao=false;ans=0;
            
            for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
            {
                cin>>c;
                if(c=='@')
                {
                    a[i][j]=1;
                    st=i;
                    ed=j;
                } 
                if(c=='.') a[i][j]=1;
                if(c=='*') a[i][j]=2,biao=true;
            }
            if(biao==false) 
            {
                cout<<-1<<endl;
                break;
            }
            dfs(st,ed,1);
            if(biao)
            cout<<-1<<endl;
            else cout<<ans-1<<endl;
        }
        return 0;
    }
  • 相关阅读:
    Java 反射
    类中静态/普通/构造初始化顺序
    计算机世界中的0和1
    Java并发练习
    HashMap底层
    HashMap 与 Hashtable 的区别
    为什么重写了equals() 就要重写hashcode()
    干货型up主
    JSP页面元素
    重定向与请求转发的区别
  • 原文地址:https://www.cnblogs.com/zhouzhihao/p/10513026.html
Copyright © 2011-2022 走看看