1 条题解
-
0
自动搬运
来自洛谷,原作者为

樱初音斗橡皮
(只读)真是个有趣的世界呢搬运于
2025-08-24 22:29:51,当前版本为作者最后更新于2021-02-19 20:00:55,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题目大意:给定 网格以及 个 的障碍物,问能画出多少个周长不大于 的、四边平行于坐标轴的矩形。
数据范围:,,。
解答:
看到“不包含障碍点”而 又很小,容易想到容斥计算贡献。
设仅考虑障碍物集合 时方案数 ,则:
情况 1. 非空
设障碍物中 和 坐标的最小、最大值分别是 和 。
设 表示不考虑网格边界且 的答案,则:
$$g(x_0,y_0)=\sum_{x\ge x_0}\sum_{y\ge y_0}[x+y\le \dfrac k 2](x-x_0+1)(y-y_0+1) $$$$=\sum_{x\ge 1}\sum_{y\ge 1}[x+x_0-1+y+y_0-1\le \dfrac k 2]xy $$设 ,则:
可以通过 、 和 的公式 算出。
那么考虑到网格的边界情况又怎么求呢?很简单,对网格的四边进行容斥即可。
具体地,设 表示仅考虑障碍物集合 、边界集合 时的答案,则 。
如何计算 ?一个简单的办法是:在考虑边界 时把 强制设为 ,在考虑边界 时把 强制设为 ,可以想象在原有的格子外加了一格并强制要求包含此格。
情况 2. 为空
此时,答案为:
$$f_S=\sum_{x=1}^n\sum_{y=1}^m[x+y\le \dfrac k 2](x_0-x+1)(y_0-y+1) $$$$=\sum_{x=1}^{\min(n,\frac k 2)}(x_0-x+1)\sum_{y=1}^{\min(m,\frac k 2-x)}(y_0-y+1) $$根据 与 的大小关系分段考虑即可。每一段都可以 求出。
总复杂度 外加巨大常数。
- 1
信息
- ID
- 6473
- 时间
- 800ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者