D - Grid and Magnet

2024-04-28 05:04
文章标签 grid magnet

本文主要是介绍D - Grid and Magnet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思路:标记一下磁铁周围的空地即可,每个连通块一定可以互相到达,我们dfs算出联通块的大小再加上该连通块周围的可达磁场区域即可。

代码:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;int main() {ios::sync_with_stdio(false);cin.tie(nullptr), cout.tie(nullptr);int n, m;cin >> n >> m;vector vis(n, vector(m, false));vector<string> mp(n);for (int i = 0; i < n; i++) {cin >> mp[i];}const int dr[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};auto check = [&](int x, int y) {return (x >= 0 && x < n && y >= 0 && y < m);};auto magnets = [&](int x, int y) {for (int d = 0; d < 4; d++) {int nx = x + dr[d][0], ny = y + dr[d][1];if (check(nx, ny) && mp[nx][ny] == '#') {return true;}}return false;};int tag = 0;vector vtag(n, vector(m, 0));auto dfs = [&](auto &&self, int x, int y) -> int {if (vis[x][y] || mp[x][y] == '#') {return 0;}if (magnets(x, y)) {if (vtag[x][y] == tag) {return 0;}vtag[x][y] = tag;return 1;}vis[x][y] = true;int res = 1;for (int d = 0; d < 4; d++) {int nx = x + dr[d][0], ny = y + dr[d][1];if (check(nx, ny)) {res += self(self, nx, ny);}}return res;};int ans = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {++tag;ans = max(ans, dfs(dfs, i, j));}}cout << ans << '\n';return 0;
}

这篇关于D - Grid and Magnet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942380

相关文章

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

LibSVM学习(六)——easy.py和grid.py的使用

我们在“LibSVM学习(一)”中,讲到libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。其实,网上也有相应的说明,但很不系统,下面结合本人的经验,对使用方法做个说明。        这两个文件都要用python(可以在http://www.python.org上下载到,需要安装)和绘图工具gnup

Magnet GRAYKEY

Magnet GRAYKEY(现已开放购买,付费询价,白嫖勿扰) Magnet GRAYKEY 是最先进、最独特的解决方案,用于解锁和恢复 iOS 和 Android 设备的数据,包括完整的文件系统、钥匙串解密和操作内存。 更快的手机取证有助于加快案件进度。 GRAYKEY 磁铁可以在同一天解锁最新的 iOS 和 Android 设备,通常在 1 小时内。 Magnet GRAYKEY 和 Mag

extjs 获取grid的选中行的某列的值

我的情景是这样的:一个grid(就叫gridA吧),最后一列的每行都是超链接,点击超链接时会弹出一个窗体,这个窗体也需要一个grid(gridB)展示,并且呢,gridB所需的数据需要gridA里的某列的值(把这个列叫做Param)作为参数。于是就产生了点击gridA的某行的超链接,获取该行的Param列的值这样的需求。 不知道为什么,我用var param=this.grid..getSe

Extjs Grid 根据列的值(0或者1)显示“是或否”

grid中:{header:'是否解析',dataIndex:'isExplain',align:'center',sortable: true,renderer:isResend}, 写一个函数: function isResend(data, metadata, record){ var resend; if(record.data.isExplain==0){resend="否";

extjs中grid,设置CheckboxSelectionModel的默认值

Grid(命名为BasicGrid)中定义了:this.sm = new Ext.grid.CheckboxSelectionModel();。表示一列checkBox。 情景:上面Grid所在的窗口弹出之后,选择一项(我这里是只选一项)点击确定之后关闭该窗口。当需要再次弹出该窗口时,把刚刚已经选择的那一项打上勾。下面是方法:我是写在弹出该窗口的方法中的。

AngularJS的ui-grid的列表数据实现换行

在公共css中添加如下: .ui-grid-cell-contents-break { padding: 5px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; overflow: hidden; height: 100%; word-break: break

【ag-grid】列宽设置不生效探索

发现使用sizeColumnsToFit()会覆盖默认设置的宽度 解决方案1 给某一列的列定义设置为suppressSizeToFit设置为:true 核心代码: gridColumns: (ColDef | ColGroupDef)[] = [{checkboxSelection: true,headerCheckboxSelection: true,suppressSizeToFit:

vue3 vxe-grid 当前高亮行的背景颜色+字体颜色,要求随着主题的颜色的改变而改变。

1、先上个图: 2、点击的行的颜色与字体的颜色,并没有随时主题的颜色而改变: const gridOptions = reactive<BasicTableProps>({id: 'userTable',showHeaderOverflow: false,showOverflow: true,keepSource: true,columns: userColumns,pagerConfig