补题:J. Robot Factory

server/2024/10/22 6:39:23/

传送门:Problem - 1600J - Codeforces

题意:给定一个二维矩阵,每个矩阵中的元素均为 [ 0, 15 ]的范围内,每个矩阵中的元素二进制位上为1时,就代表一堵墙(不能通过),求二维矩阵联通块大小从大到小排列

思路:( dfs )

由于元素是有限的,并且范围很小,于是可以先预处理每个元素的二进制位

在通过 dfs 处理出来每个联通快的大小

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e3 + 10;
bool vis[N][N];
int dx[4] = { 0 , 1 , 0 , -1 };
int dy[4] = { -1 , 0 , 1 , 0 }; // 这个要对齐,是 北 东 南 西 ,因为要和元素的二进制对应
int d[16][4];
int cnt; int n, m;
void dfs(vector<vector<int>>& a, int x, int y)
{vis[x][y] = true;cnt++;for (int i = 0; i < 4; i++){int xx = x + dx[i]; int yy = y + dy[i];if (xx <= 0 || yy <= 0 || xx > n || yy > m || d[a[x][y]][i] || vis[xx][yy])continue;dfs(a, xx, yy);}
}
void solve()
{cin >> n >> m;memset(vis, 0, sizeof vis);vector<vector<int>> a(n + 1, vector<int>(m + 1));for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++) cin >> a[i][j];priority_queue<int> heap;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)if (!vis[i][j]){cnt = 0;dfs(a, i, j);heap.push(cnt);}while (heap.size()){cout << heap.top() << " "; heap.pop();}cout << endl;
}
signed main()
{for (int i = 0; i < 16; i++)for (int j = 0; j < 4; j++)if (i >> j & 1) d[i][j] = 1;int tt = 1;while (tt--)solve();return 0;
}


http://www.ppmy.cn/server/133822.html

相关文章

Solon 3.0 新特性:HttpUtils 了解一下

Solon 3.0 引入一个叫 HttpUtils 小插件&#xff0c;这是一个简单的同步 HTTP 客户端&#xff0c;基于 URLConnection 适配&#xff08;也支持切换为 OkHttp 适配&#xff09;。使得编写 HTTP 客户端代码更加直观和易于阅读。 使用 URLConnection 适配时&#xff08;大小为 40…

RestHighLevelClient操作es查询文档

目录 利用RestHighLevelClient客户端操作es查询文档 查询match_all dsl语句&#xff1a; ​编辑 java代码 小结 match字段全文检索查询 dsl语句 java代码 multi_match多字段全文检索查询 dsl语句 java代码 term精确查询 dsl语句 java代码 range范围查询 dsl语句 j…

图片写入GPS经纬高信息

近期项目中需要往java平台传输图片&#xff0c;直接使用QNetworkAccessManager和QHttpMultipart类即可&#xff0c;其他博文中有分享。 主要是平台接口对所传输图片有要求&#xff1a;需要包含GPS信息&#xff08;经度、纬度、高度&#xff09;。 Qt无法直接实现&#xff0c;…

数据驱动时代:五款免费报表工具深度解析

在当今数据驱动的时代&#xff0c;报表工具已经成为各类企业进行决策和管理的重要工具。无论是大中型企业还是小微企业&#xff0c;能够快速、高效地生成可视化报表&#xff0c;洞察业务运营情况&#xff0c;已经成为提升竞争力的关键。今天为大家挑选了5款非常优秀的报表软件&…

STM32G4系列MCU的ADC模块标定方法和采样时间

目录 概述 1 ADC模块标定 1.1 功能介绍 1.2 软件程序校准ADC 1.2.1 标定步骤 1.2.2 标定时序框图 1.3 软件程序重新注入校准因子到ADC 1.3.1 标定步骤 1.3.2 更新ADC校准因子 1.4 用单个ADC转换单端和差分模拟输入 1.4.1 标定流程 1.4.2 混合单端和差分通道 2 通道…

WPF中的Style

Style介绍 在XAML中&#xff0c;Style是一个用于定义控件的默认属性值的资源。通过样式&#xff0c;你可以设置一组属性&#xff0c;这些属性将被应用到所有使用该样式的控件上。这有助于保持应用程序的一致性&#xff0c;并且可以减少重复的标记&#xff0c;使得UI的维护更加…

微信小程序canvas 生成二维码图片,画图片,生成图片,将两个canvas结合并保存图片

需求实现步骤如下 先定义两个canvas一个canvas myQrcode画二维码的图片另一个canvas mycanvas画一个背景图&#xff0c;并把二维码画到这个canvas上&#xff0c;mycanvas这个canvas生成一张图片&#xff0c;返回图片的临时路径最后保存图片到手机 首先wxml,新版微信小程序can…

大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…