zoukankan      html  css  js  c++  java
  • poj1088滑雪搜索dfs

    #include<iostream>
    using namespace std;

    #define MAXN 20000

    int map[105][105];
    int f[105][105];
    int x[]={0,0,1,-1};
    int y[]={1,-1,0,0};

    void dfs(int i,int j)
    {
     for(int k=0;k<4;k++)
     {
      if(map[i+x[k]][j+y[k]]>map[i][j] && f[i][j]+1>f[i+x[k]][j+y[k]])
      {
       f[i+x[k]][j+y[k]]=f[i][j]+1;   //f代表等级
        dfs(i+x[k],j+y[k]);
      }
       
     }
    }

    int main()
    {
     int r,c,s;
     while(cin>>r>>c)
     {
      for(int i=1;i<=r;i++)                   //输入数据    f为1
       for(int j=1;j<=c;j++)
        cin>>map[i][j],f[i][j]=1;
      for(int i=0;i<=r+1;i++)                     //行数+2次循环
       map[0][i]=map[r+1][i]=map[i][0]=map[i][c+1]=MAXN;      //将边界换成最大
      for(int i=1;i<=r;i++)                           //逐个点递归
       for(int j=1;j<=c;j++)
        dfs(i,j);
      s=0;
      for(int i=1;i<=r;i++)
       for(int j=1;j<=c;j++)
        if(f[i][j]>s)
         s=f[i][j];
      cout<<s<<endl;
     }
     return 0;
    }

  • 相关阅读:
    第十二章类的无参方法
    第十三章人机猜拳
    第十一章类和对象
    面向对象七大原则。
    深入类的方法。
    使用集合组织相关数据。
    .NET框架
    C#数据类型
    错误。
    实现Windows的数据绑定
  • 原文地址:https://www.cnblogs.com/amourjun/p/5134199.html
Copyright © 2011-2022 走看看