首页 > 其他分享 >ABC351D

ABC351D

时间:2024-04-29 21:46:44浏览次数:22  
标签:磁铁 连通 单元格 网格 禁地 ABC351D

[ABC351D] Grid and Magnet

题意简述

给定一个 \(h\times w\) 的网格,有些网格中有磁铁。你可以向上下左右移动 \(1\) 格。

当这个格子上下左右有磁铁时你不能移动。

对于每个没有磁铁的单元格,将其自由度定义为从该单元格重复移动所能到达的单元格数。求网格中所有没有磁铁的单元格的最大自由度。(不一定一次性,只要有一种方案可达)。

称受磁铁影响的格子为禁地。(有去无回)

法1

分析

根据定义,能到达的单元格分为两类:

  1. 禁地。
  2. 非禁地。

平时做到的题目好像没有有去无回的,都是①双向连通,并查集就可以求最大连通块。

于是考虑先剔除禁地和磁铁格,可以将图分成好多个连通块,②连通块内的点彼此可达

再来考虑禁地:对于每个连通块,四周禁地也是可达的(因为去到就行,不用回来),计入答案。

做法

先用并查集,然后枚举每个连通块内的所有点的周边禁地总数(去重)。

更好的做法是枚举禁地,向四周连通块贡献 \(1\)。(去重)

https://atcoder.jp/contests/abc351/submissions/52870679

法2

分析

答案至少是 \(1\)。

朴素做法:从每个点出发搜索。

因此可以从非禁地(禁地反正是 \(1\),搜一下也行)出发,搜索可达的点,计算答案(遇到禁地就不扩展,也要计入答案)。

性质:出发点必须是没有被遍历到过的点。(非禁地:①②,方案一样;禁地:动不了,反正 \(\text{ans}=1\))

由于连通块四周禁地的存在,搜索时可能搜索到之前访问过的点,但是这些点必定是禁地,不影响复杂度。

较法1实现更简单,但是考虑的细节更多。

标签:磁铁,连通,单元格,网格,禁地,ABC351D
From: https://www.cnblogs.com/wscqwq/p/18166695

相关文章

  • 【BFS】abc351D Grid and Magnet 题解
    传送门D-GridandMagnet题意:给定h行w列的图表,其中部分位置有磁铁,人物会在磁铁四周((x+1,y),(x-1,y),(x,y+1),(x,y-1))停止,某点的自由度定义为从该点出发最多可到的方块数目可以走重复路前置例题:求连通块大小洛谷P1141思路:由自由度的定义联想到连通块的大小,从而决定用BFS......
  • ABC351D_MagicalCookies
    MagicalCookies根据问题的描述,如果在判断同一行或同一列的所有饼干是否具有相同颜色时,选择了时间复杂度为\(\Theta(H)\)或\(\Theta(W)\)的方法,那么在每次操作1或操作2中,时间复杂度将变为\(\Theta(HW)\),因此在最坏情况下,整个计算的时间复杂度将为\(\Theta(HW(H+W))\),可......