zoukankan      html  css  js  c++  java
  • CodeForces

    这是一道水题.....

     1 /*****************************************************************************************************************************************************************************************************
     2 题意: 给你N*M的字符矩阵问是否在矩阵中可以找到一个由同种字符围成的环.
     3 题解:
     4     由题意,最小的环的长度必须大于等于4,所以DFS时可能需要注意一些小细节.
     5 *****************************************************************************************************************************************************************************************************/
     6 #include<bits/stdc++.h>
     7 using namespace std;
     8 int m,n,b[105][105],book[105][105],du[300],vis[200];
     9 int temp[4][2]={{1,0},{-1,0},{0,-1},{0,1}},ok = 0;
    10 inline void dfs(int x,int y,int fx,int fy,int color){
    11     if (ok) return ;
    12     for (int k = 0; k<4; ++k){
    13         int u = x+temp[k][0]; int v = y+temp[k][1];
    14         if (u<=0||v<=0||u>n||v>m||(u==fx&&v==fy)) continue;
    15         if (b[u][v]==color){
    16             if (book[u][v]==color){ ok=1; return;}
    17             book[u][v] = color;
    18             dfs(u,v,x,y,color);            
    19         }
    20     }
    21 }
    22 int main(){
    23     cin>>n>>m; char c;
    24     for (int i=1; i<=n; ++i)
    25         for (int j=1; j<=m; ++j){
    26             c = getchar();
    27             while (c=='
    '||c=='
    ') c = getchar();
    28             b[i][j] = c; du[c] ++;
    29         }
    30     for (int k=0; k<=200; ++k)
    31         if (du[k]>=4){
    32             ok = 0; memset(book,0,sizeof(book));
    33             for (int i=1; i<=n; ++i)
    34                 for (int j=1; j<=m; ++j)
    35                 if (b[i][j]==k&&book[i][j]==0){
    36                     book[i][j] = k; dfs(i,j,-1,-1,k); if (ok){ cout<<"Yes
    "; return 0;}
    37                 }
    38         }
    39     cout<<"No
    ";
    40     return 0;
    41 }
  • 相关阅读:
    数据变换
    离群点的检验
    数据清洗
    数据采样
    FM与FFM
    EM算法与高斯混合模型
    最大熵模型
    PageRank
    软件技术基础
    原来炫酷的可视化地图,用Python就能搞定!
  • 原文地址:https://www.cnblogs.com/juruohx/p/7243049.html
Copyright © 2011-2022 走看看