zoukankan      html  css  js  c++  java
  • Uva 10336 Rank the Languages

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 void Dfs(int x,int y);
     5 char MapString[1000][1000]={0};//要判断的“地图”
     6 bool vis[1000][1000]={0};//节点是否本访问过,
     7 int main()
     8 {
     9     int h,w;//h:height;w:width
    10     int line;
    11     int MaxChar;//”语言”被使用的“国家”数;
    12 
    13     while(cin>>line){
    14         for(int m=0; m < line;m++)
    15         {
    16             memset( vis, 0, sizeof(vis) );
    17             int letter[29]={0}; //“语言”统计
    18             MaxChar=0;
    19             //以上应在此循环内初始化
    20             cin >> h >>w;
    21             //输入部分
    22             for(int i = 1;i<=h;i++){
    23                 for(int j = 1;j<=w;j++){
    24                     cin>>MapString[i][j];
    25                 }
    26             }
    27             for(int j = 1;j <= h;j++){
    28                 for(int k = 1;k <= w;k++){
    29                     if(vis[j][k] != 1){
    30                         MaxChar = max(++letter[MapString[j][k]-'a'],MaxChar);
    31                         Dfs(j,k);
    32                     }
    33                 }
    34             }
    35             cout<<"World #"<<m+1<<endl;
    36             for( int j = MaxChar; j >= 1 ; j-- ){
    37                 for( int k = 0 ; k < 26 ; k++ ){
    38                     if( letter[k] == j ){
    39                         cout<<(char)('a'+ k)<<": "<<j<<endl;
    40                     }
    41                 }
    42 
    43             }
    44         }
    45     }
    46     return 0;
    47 }
    48 void Dfs(int x,int y)
    49 {
    50     vis[x][y] = 1;
    51     if( (MapString[x+1][y] == MapString[x][y]) && (vis[x+1][y] !=1) )Dfs(x+1,y);
    52     if( (MapString[x-1][y] == MapString[x][y]) && (vis[x-1][y] !=1) )Dfs(x-1,y);
    53     if( (MapString[x][y+1] == MapString[x][y]) && (vis[x][y+1] !=1) )Dfs(x,y+1);
    54     if( (MapString[x][y-1] == MapString[x][y]) && (vis[x][y-1] !=1) )Dfs(x,y-1);
    55 }

    算法:dfs;

    思想:递归。

    Donghua University
  • 相关阅读:
    day21--案例源码详解
    字节流,字符流文件复制总结,包含9种方法,都是标准写法
    字符流总结--Day21
    重踏学习Java路上_Day21(字符流,io小结,案例)
    IO流总结--Day20
    递归总结—-day20
    重踏学习Java路上_Day20(递归,IO流)
    File总结_day19
    题解 【POJ1934】 Trip
    题解 【POJ1952】 BUY LOW, BUY LOWER
  • 原文地址:https://www.cnblogs.com/ohxiaobai/p/4066048.html
Copyright © 2011-2022 走看看