CF1086F.Forest Fires

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

伯兰德森林是在几十年前种植的,形成了一个无限大的网格,每个格子里都有一棵树。现在,这些树已经长大,形成了非常密集的结构。

实际上,这么密集,以至于火灾成了森林的真正威胁。今年伯兰德的气候异常炎热,一些树木被点燃了!

第 00 秒时,有一些树木最先被点燃。每过一秒,所有当前正在燃烧的树木会点燃所有尚未燃烧的相邻树木。若两个格子通过边或角相邻,则认为这两棵树是相邻的。幸运的是,经过 tt 秒后,伯兰德消防队终于赶到火灾现场,并瞬间扑灭了所有火焰。

现在他们想要计算火灾的破坏力。设 valx,yval_{x, y} 表示位于格子 (x,y)(x, y) 的树被点燃的时刻(以秒为单位)。破坏力定义为所有被烧毁树木的 valx,yval_{x, y} 之和。

显然,消防队员都是消防员而不是程序员,因此他们请你帮忙计算火灾的破坏力。

由于结果可能非常大,请输出其对 998244353998244353 取模的结果。

输入格式

第一行包含两个整数 nn 和 tt(1≤n≤501 \le n \le 50,0≤t≤1080 \le t \le 10^8),分别表示最初被点燃的树的数量和消防队扑灭火灾的时刻。

接下来的 nn 行,每行包含两个整数 xx 和 yy(−108≤x,y≤108-10^8 \le x, y \le 10^8),表示最初被点燃的树的位置。

显然,网格上 (0,0)(0, 0) 的位置以及坐标轴的方向无关紧要,因为网格是无限的,答案与这些无关。

保证所有给定的树的位置两两不同。

网格是无限的,因此火势不会在到达 −108-10^8 或 10810^8 时停止,而是会继续蔓延。

输出格式

输出一个整数,表示所有被烧毁树木的 valx,yval_{x, y} 之和,对 998244353998244353 取模。

输入输出样例

  • 输入#1

    1 2
    10 11
    

    输出#1

    40
  • 输入#2

    4 1
    2 2
    1 3
    0 2
    2 4
    

    输出#2

    18
  • 输入#3

    3 0
    0 0
    -2 1
    1 1
    

    输出#3

    0

说明/提示

以下是前三个样例的示意图。灰色格子的 val=0val = 0,橙色格子的 val=1val = 1,红色格子的 val=2val = 2。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页