zoukankan      html  css  js  c++  java
  • ACM1198Farm Irrigation

    这个题目好吓人呀!嘿嘿---

    不过仔细分析下就可以啦!

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 const int N=550;
     5 int Gra[11][4]={
     6 {1,0,0,1},{1,1,0,0},{0,0,1,1},{0,1,1,0},
     7 {1,0,1,0},{0,1,0,1},{1,1,0,1},
     8 {1,0,1,1},{0,1,1,1},{1,1,1,0},{1,1,1,1}};
     9 int direction[4][2]={{-1,0},{0,1},{1,0},{0,-1}};
    10 //11种铸造方式,1为开,0为关
    11  //用输入的大写字母减去'A' 即可
    12   //2和下面的0可相加
    13   //3->1;0->2;1->3; 
    14   int m,n;//m lines and n characters
    15   int map[N][N];
    16 int vis[N][N];
    17 void dfs(int x,int y)
    18 {
    19     vis[x][y]=1;
    20     for(int i=0;i<4;i++) 
    21     {
    22         int X=x+direction[i][0];
    23         int Y=y+direction[i][1];
    24         int j=(i>=2)?(i-2):(i+2);//顺序绝对不可以改,或者要改一起改,有点变动就是wrong 
    25         if(Gra[map[x][y]][i]&&0<X&&X<=m&&0<Y&&Y<=n)
    26         {
    27             if(!vis[X][Y]&&Gra[map[X][Y]][j])
    28             dfs(X,Y);
    29         }
    30     }
    31 }
    32 int main()
    33 {
    34     char ch[N];
    35     while(cin>>m>>n)
    36     {
    37         if(m<0||n<0)break;//exit;
    38         memset(vis,0,sizeof(vis));
    39         for(int i=1;i<=m;i++)
    40         {
    41             cin>>ch;
    42             for(int j=0;j<n;j++)
    43                 map[i][j+1]=ch[j]-'A';
    44         }
    45         int count=0;
    46         for(int i=1;i<=m;i++)
    47         {
    48             for(int j=1;j<=n;j++)
    49             if(!vis[i][j])
    50             dfs(i,j),count++;
    51         }
    52         cout<<count<<endl;
    53     }
    54     return 0;
    55 } 
    What I don't dare to say is I can't!
  • 相关阅读:
    OCP-1Z0-053-V12.02-668题
    Oracle DB 监控和优化RMAN
    OCP-1Z0-052-V8.02-123题
    OCP-1Z0-053-V12.02-151题
    OCP-1Z0-053-V12.02-66题
    OCP-1Z0-053-V12.02-163题
    OCP-1Z0-052-V8.02-51题
    OCP-1Z0-052-V8.02-53题
    ostringstream、istringstream、stringstream
    OCP-1Z0-053-V12.02-205题
  • 原文地址:https://www.cnblogs.com/sytu/p/3854688.html
Copyright © 2011-2022 走看看