zoukankan      html  css  js  c++  java
  • luogu1123

    一份错误的代码qaq,思路没问题,但是这个递归好像是回不去的

    #include<bits/stdc++.h>
    using namespace std;
    
    int vis[10][10];
    int a[10][10];
    
    int dx[9]={0,0,0,1,1,1,-1,-1,-1};
    int dy[9]={0,1,-1,0,1,-1,0,1,-1};
    
    //来到一个点,
    //如果是vis=0,就可以访问,cur加上这个点的值,并且下一步移动 
    //如果不是,就重新回去 
    int dfs(int n,int m,int x,int y,int cur)//x,行,n ;y,列,m 
    {
        if(x<0||y<0||x>=n||y>=m||vis[x][y]) return cur;//这里有问题 
        cur+=a[x][y];
        for(int i=0;i<9;i++)
        {
            if(!(x+dx[i]<0||y+dy[i]<0||x+dx[i]>=n||y+dy[i]>=m))
            vis[x+dx[i]][y+dy[i]]=1;
        }
        for(int i=0;i<n;i++)
                for(int j=0;j<m;j++)
                    return dfs(n,m,i,j,cur);
    }
    
    int main(){
        int t;
        cin>>t;
    
        for(int k=0;k<t;k++)
        {    
            int temp=0;
            int maxn=0;
            memset(a,0,sizeof(a));
            memset(vis,0,sizeof(vis));
            int n,m;//数字矩阵为N行M列。
            cin>>n>>m;
            for(int i=0;i<n;i++)
                for(int j=0;j<m;j++)
                    cin>>a[i][j];
            for(int i=0;i<n;i++)
                for(int j=0;j<m;j++){
                    memset(vis,0,sizeof(vis));
                    if(a[i][j])
                    temp=dfs(n,m,i,j,0);
                    if(maxn<=temp) maxn=temp;
                }
            cout<<maxn<<endl;
        }
    
        
    } 
  • 相关阅读:
    数据结构笔记
    简单数学
    分析代码练习--长期目标
    C#基础--面向对象计算器
    经常喜欢看的网站
    C#基础--面向过程计算器
    C#中的五个访问修饰符
    SQLServer 游标详解
    快速产生大量顺序数字序列
    VSCode 必装的 10 个高效开发插件
  • 原文地址:https://www.cnblogs.com/cyfe67373/p/12450313.html
Copyright © 2011-2022 走看看