蓝桥集训之奶牛选美

蓝桥集训之奶牛选美

  • 核心思想:Flood fill(dfs)

    • 用Flood fill将两个连通块搜出 保存
    • 然后分别遍历两个连通块 算两点间距离
  •   #include<iostream>
      #include<cstring>
      #include<vector>
      
      using namespace std;
      const int N = 55;
      typedef pair<int,int> PII;
      
      int dx[4] = {0,-1,0,1} , dy[4] = {1,0,-1,0};
      vector<PII> points[2];  //存两个连通块
      char g[N][N];
      int n,m;
      
      void dfs(int x,int y,vector<PII> &ps)
      {
          g[x][y] = '.';  //找到X 改为. 不影响后续递归
          ps.push_back({x,y});  //将X的点存入
          
          for(int i=0;i<4;i++)
          {
              int a = x + dx[i] , b = y + dy[i];
              if (a >= 0 && a < n && b >= 0 && b < m && g[a][b] == 'X')
                  dfs(a,b,ps);  //找到附近的X 继续搜
          }
      }
      int main()
      {
          cin>>n>>m;
          for(int i=0;i<n;i++) cin>>g[i];
          
          for(int i=0,k=0;i<n;i++)
          {
              for(int j=0;j<m;j++)
              {
                  //找到一个时 dfs搜出一整个连通块 下次再找到 找出第二个
                  if(g[i][j] == 'X') dfs(i,j,points[k++]);  
              }
          }
          
          int res = 1e8;
          for(auto a : points[0])
              for(auto b : points[1])
                  res = min(res , abs(a.first - b.first) + abs(a.second - b.second) - 1);
                  
          cout<<res<<endl;
          return 0;
      }
    

相关推荐

  1. 集训奶牛选美

    2024-03-15 22:14:06       40 阅读
  2. 集训星空

    2024-03-15 22:14:06       40 阅读
  3. 集训日期差值

    2024-03-15 22:14:06       50 阅读
  4. 集训日期问题

    2024-03-15 22:14:06       47 阅读
  5. 集训八数码

    2024-03-15 22:14:06       45 阅读
  6. 集训山峰和山谷

    2024-03-15 22:14:06       43 阅读
  7. 集训格子游戏

    2024-03-15 22:14:06       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 22:14:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 22:14:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 22:14:06       82 阅读
  4. Python语言-面向对象

    2024-03-15 22:14:06       91 阅读

热门阅读

  1. 乘积尾零 2018年第九届蓝桥杯省赛

    2024-03-15 22:14:06       37 阅读
  2. 2024.3.9每日一题

    2024-03-15 22:14:06       44 阅读
  3. mysql binlog自动删除与手动删除

    2024-03-15 22:14:06       41 阅读
  4. 老卫带你学---leetcode刷题(189. 轮转数组)

    2024-03-15 22:14:06       39 阅读
  5. 【算法-特征选择】reliefF算法实现

    2024-03-15 22:14:06       42 阅读
  6. 百科 | 光伏电站如何开展运维工作?

    2024-03-15 22:14:06       41 阅读
  7. BUG解决-Modelsim打开许可证件不可用

    2024-03-15 22:14:06       38 阅读
  8. go反射实战

    2024-03-15 22:14:06       34 阅读
  9. Python中的pip工具

    2024-03-15 22:14:06       46 阅读
  10. 为什么会出现粘包这个问题

    2024-03-15 22:14:06       35 阅读
  11. 26: 翻转数的和(python)

    2024-03-15 22:14:06       47 阅读