P5423 [USACO19OPEN] Valleys P

本文详细介绍了USACO比赛中的Valleys问题,探讨了如何确定山谷的定义、如何识别有洞的区域以及如何通过排序和并查集算法找到所有山谷的大小之和。文章提供了输入输出样例,并逐步解释了解决方案的关键步骤,包括弱山谷的概念和洞的数量计算。
摘要由CSDN通过智能技术生成

题目描述

Bessie 喜欢观光,而今天她正在寻找景色优美的山谷。

她感兴趣的是一个 �×�N×N 的方阵,其中每个格子都有一个高度。所有在此正方形方阵之外的格子的高度可以被看作是无限大。

山谷指的是一块连续、不含洞的一块区域,并且每个相邻的包围该区域的格子都高于这块区域中的所有格子。

更形式化地说:

  • 一组格子被称作是“沿边相邻的”,如果可以从其中任意一个格子出发,经过一些沿上、下、左、右方向的移动,到达其中所有其他格子。
  • 一组格子被称作是“沿点相邻的”,如果可以从其中任意一个格子出发,经过一些沿上、下、左、右、对角线方向的移动,到达其中所有其他格子。
  • 一个“区域”指的是一组非空并且沿边相邻的格子。
  • 一个区域被称作是“有洞的”,如果这个区域的补集(包括在 �×�N×N 方阵之外的无限高格子)不是沿点相邻的。
  • 区域的“边界”指的是所有与该区域内的某个格子正交相邻(上、下、左、右),但本身不在该区域内的格子。
  • 一个“山谷”指的是某个非有洞区域,满足区域内的任意格子的高度低于该区域边界上任意格子的高度。

Bessie 的目标是求出所有山谷的大小之和。

一些例子

这是一个区域:

oo.
ooo
..o
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值