zoukankan      html  css  js  c++  java
  • codeforces 510B Fox And Two Dots(dfs)

    http://codeforces.com/contest/510/problem/B

    题意: n行 每行m个颜色 问相同的颜色能否构成环

    思路: 对没vis过的位置dfs 一直到满足条件为止

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    char mat[100][100];
    int vis[100][100];
    int n,m;
    int ok;
    int op[4][2]={0,1,0,-1,1,0,-1,0};
    void dfs(int i,int j,int x,int y)
    {
        if(ok) return ;
        vis[i][j]=1;
        for(int z=0;z<4;z++)
        {
            int nx=i+op[z][0];
            int ny=j+op[z][1];
            if(nx<0||nx>=n||ny<0||ny>=m) continue;
            if(mat[i][j]==mat[nx][ny])
            {
                if(vis[nx][ny]==1&&(nx!=x||ny!=y))
                {
                  ok=1;
                }
                else if(vis[nx][ny]==0&&mat[i][j]==mat[nx][ny])
                dfs(nx,ny,i,j);
            }
    
        }
    }
    int main()
    {
        //int n,m;
        int i,j,k;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            for(i=0;i<n;i++)
                scanf("%s",mat[i]);
            memset(vis,0,sizeof(vis));
            ok=0;        
            for(i=0;i<n;i++)
            {
                if(ok) break;
                for(j=0;j<m;j++)
                {
                    if(!vis[i][j])
                    dfs(i,j,-1,-1);
                }
            }
            if(ok) printf("Yes
    ");
                else printf("No
    ");
        }
        return 0;
    }
  • 相关阅读:
    sqlserver查询表字段
    Lombok
    属性配置
    计时器与启动加载器
    banner
    互斥锁和条件变量
    System V消息队列
    命令行参数的处理函数getopt
    posix 消息队列
    不定参数
  • 原文地址:https://www.cnblogs.com/sola1994/p/4316882.html
Copyright © 2011-2022 走看看