首页 > 其他分享 >城堡问题

城堡问题

时间:2022-09-02 13:57:38浏览次数:56  
标签:sy area int 城堡 st 问题 ++ include

https://www.acwing.com/problem/content/1100/

注意这题里面对连通性的处理。

#include <cstring>
#include <iostream>
#include <algorithm>

#define x first
#define y second

using namespace std;

typedef pair<int, int> PII;

const int N = 55, M = N * N;

int n, m;
int g[N][N];
PII q[M];
bool st[N][N];

int bfs(int sx, int sy)
{
    int dx[4] = {0, -1, 0, 1}, dy[4] = {-1, 0, 1, 0};

    int hh = 0, tt = 0;
    int area = 0;

    q[0] = {sx, sy};
    st[sx][sy] = true;

    while (hh <= tt)
    {
        PII t = q[hh ++ ];
        area ++ ;

        for (int i = 0; i < 4; i ++ )
        {
            int a = t.x + dx[i], b = t.y + dy[i];
            if (a < 0 || a >= n || b < 0 || b >= m) continue;
            if (st[a][b]) continue;
            if (g[t.x][t.y] >> i & 1) continue;

            q[ ++ tt] = {a, b};
            st[a][b] = true;
        }
    }

    return area;
}

int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i ++ )
        for (int j = 0; j < m; j ++ )
            cin >> g[i][j];

    int cnt = 0, area = 0;
    for (int i = 0; i < n; i ++ )
        for (int j = 0; j < m; j ++ )
            if (!st[i][j])
            {
                area = max(area, bfs(i, j));
                cnt ++ ;
            }

    cout << cnt << endl;
    cout << area << endl;

    return 0;
}

标签:sy,area,int,城堡,st,问题,++,include
From: https://www.cnblogs.com/xjtfate/p/16649589.html

相关文章

  • 迷宫问题
    https://www.acwing.com/problem/content/1078/注意记录状态的唯一性#include<bits/stdc++.h>#definexfirst#defineysecondusingnamespacestd;typedefpair<in......
  • Flask 学习-38.Flask-RESTful 序列化输出中文显示问题
    前言flask接口无法显示中文,可以添加全局配置JSON_AS_ASCII=False,但是解决不了Flask-RESTful序列化输出中文问题flask配置中文显示添加全局配置项JSON_AS_ASCII=Fa......
  • window2012ServerR2 上安装mysql8遇到的问题
    安装教程:https://baijiahao.baidu.com/s?id=1734145282045952263&wfr=spider&for=pcwindow2012ServerR2上我在安装安装mysql8之前,最好把操作系统补丁打全,否则会遇到很多......
  • Java表达式转型问题
    1规则计算时,所有char、short、byte类型会转为int型。final修饰的变量不会自动转型,所以final修饰的byte不会自动转为int有一个数是long/float/double,计算结果也是long/f......
  • 二叉树路径问题
    问题分类1.自顶向下从某一结点(不一定是根节点),从上到下寻找路径,到某一节点(不一定是叶节点)结束二叉树的所有路径......
  • 关于微信支付API证书LINUX安装问题
    什么是ssl证书  SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL证书就是遵守SSL协议,由受信任的数字......
  • 【团队合作与交流问题】竞赛、课程项目团队合作问题
    1前言作为一名在大学时代,也就打过几场团队合作的竞赛,跟包括但不限于与自己班级同学一起搞课程项目,与自己的实验室老师的利益博弈。我总是在烦恼,如何跟人交流,如何更加有......
  • CSS 面试问题的答案——第一部分 (1-10/34)
    CSS面试问题的答案——第一部分(1-10/34)该材料有助于为前端职位的面试做准备。我回答了GitHub存储库中最受欢迎的问题列表中的所有CSS问题——前端-开发者-面试-......
  • 关于使用命令行 cf login 登录 SAP BTP CloudFoundry 环境的问题
    在SAPBTP平台CloudFoundry环境找到APIendpoint:然后使用命令行cfapi,后面跟上这个APIendpoint:然后使用cflogin命令行登录:如果password输入错误,会遇到上......
  • 【已解决】element ui版本安装问题
    使用npmielement-ui-S报错使用cnpminstall--saveelement-ui不报错 (注意是:cnpm,这是用淘宝镜像安装的)如果你不能使用cnpm的话,执行下面语句就可以了。npminst......