zoukankan      html  css  js  c++  java
  • POJ2386

    1,我对我这水平产生了挺大的怀疑。

    2,我真是,又没写字符数组!!!

    3,反正我觉得你这情况堪忧。

    #include<iostream>
    using namespace std;
    int n,m;
    char b[100][100];
    int dx[]={1,1,1,0,0,-1,-1,-1};//还可以用循环挺有意思的 
    int dy[]={1,0,-1,1,-1,0,1,-1};
    int cnt=0;
    int dfs(int x,int y)
    {
        b[x][y]='.';
        if(x<1||y<1||x>n||y>m) return 0;
        for(int i=0;i<=7;i++)
        {
            int xx=x+dx[i];
            int yy=y+dy[i];
            if(b[xx][yy]=='W') 
            {
                dfs(xx,yy);
             } 
         } 
        return 0;
        
    }
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                cin>>b[i][j];
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                {
                    if(b[i][j]=='W')
                    {
                        dfs(i,j);
                        cnt++;
                    }
            }
        cout<<cnt<<endl;
        
        
    } 

    4,反正以后写dx[],dy[]倒是有个套路了.

    5,其实写之前都没想通,这个确实。然后又觉得自己先写下去会更舒服些。然后就不停bug。害。

    6,但是oj上是runtime error;我去。

    是不是体现了个时间复杂度的问题。

    7,好像就是代码上的一些细节成这些问题了

    8,

    #include<iostream>
    using namespace std;
    int n,m,cnt=0;
    char b[105][105]; 
    int dx[]={1,1,1,0,0,-1,-1,-1};
    int dy[]={1,-1,0,1,-1,1,-1,0};
    int dfs(int x,int y)
    {
        b[x][y]='.';
        for(int i=0;i<=7;i++)
        {
            int xx=x+dx[i];
            int yy=y+dy[i];
            if(xx>=1&&y>=1&&xx<=n&&yy<=m&&b[xx][yy]=='W')
                dfs(xx,yy);
        }    
        return 0;
    }
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                cin>>b[i][j];
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                if(b[i][j]=='W')
                {
                    dfs(i,j);
                    cnt++;
                }
        cout<<cnt<<endl;
        
    }
     

    6,不过dfs的话,似乎除了边界要有return ,最后好像也要return .不管你返回值是什么的。

    7,你第二个代码把x,y的范围放到里面其实少了好多步。之前要进的更多。

    8,来下费曼吧。

    9,费曼出来就是一个满足条件然后执行的过程,

    就像你在森林冰火人里面,你一个火人按着那个按钮,门才会开。

    我得正确地使用费曼。

    10,对了复杂度也得好好分析下,

  • 相关阅读:
    nginx 简单应用
    js判断图片是否存在
    Quartz Cron 生成工具
    c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件
    SQL Server 将某一列的值拼接成字符串
    EF 里的 join and Group Join
    .net EF Join 关联表分页查询
    IIS 设置文件可下载
    windows 2003 无法安装 .net4.0 windows服务
    NEST 增删改查
  • 原文地址:https://www.cnblogs.com/beiyueya/p/12122823.html
Copyright © 2011-2022 走看看