• Gym


    题目:http://codeforces.com/gym/100971/problem/J 

    题目理解:chrome翻译的其中一段文字:从每个自由细胞中,只有通过共享一侧的细胞移动,才有可能到达所有其他自由细胞。

    所有细胞是连通的,AB之间连通。

    #include<vector>
    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int n, m;
        cin >> n >> m;
        int cnt = 0;
        bool flag = true;
        vector<string> a(n);//定义存储n个string类型元素的向量容器
        for (int i = 0; i < n; i++)
        {
            cin >> a[i];//按行输入,输入第i行
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {//cnt计算内部点(i,j)(非#点)周围有几个不是#
                if (a[i][j] == '#')//如果(i,j)这个点是#退出当前循环,继续下一个循环
                    continue;
                cnt = 0;
                if (i != 0 && a[i - 1][j] != '#')//如果该点的上方不是#,cnt++
                    cnt++;
                if (i != n - 1 && a[i + 1][j] != '#')
                    cnt++;
                if (j != 0 && a[i][j - 1] != '#')
                    cnt++;
                if (j != m-1 && a[i][j + 1] != '#')
                    cnt++;
                if (cnt >= 3)//若(i,j)的四周有3或4个不是#,即存在T型区域,输出YES并结束
                {
                    cout << "YES" << endl;
                    return 0;
                }
                if (cnt == 1)//如果内部点(非#点)存在四周只有一个不是#,则不存在
                    flag = false;//false赋值给flag
            }
        }
        if (flag)
            cout << "YES" << endl;
        else
            cout << "NO" << endl;
        return 0;
    }
      

  • 相关阅读:
    [每日短篇] 1C
    项目Alpha冲刺 Day12
    项目Alpha冲刺 Day12
    [转载]MVC中单用户登录
    GitLab
    Git 版本控制
    Jenkins持续集成
    Jenkins安装
    Docker 网络基础原理
    java中内存的使用
  • 原文地址:https://www.cnblogs.com/XuYiting/p/9323281.html
Copyright © 2020-2023  润新知