AT_xmascon20_a.Additive-Subtractive Stamps

通过率:0%

AC君温馨提醒

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

题目描述

使用最多 20,00020,000 次给定的印章,创作一个符合以下区域地图要求的图像。只要符合后述的达成条件,可以将图像制作得更加丰富多彩。

区域地图

输入格式

本题不需要输入。

输出格式

第一行输出一个整数 $ p $,表示印章操作的次数,满足 $ 0 \le p \le 20,000 $。

接下来的 $ p $ 行,每行包含 $ 4 $ 个用空格分隔的整数 $ k_i,\ x_i,\ y_i,\ t_i $,代表第 $ i $ 次印章操作的信息:在位置 $ (x_i,\ y_i) $ 使用 ID 为 $ k_i $ 的印章。$ t_i = 1 $ 表示盖章操作,$ t_i = -1 $ 表示撤销操作。

印章必须在至少能覆盖一个像素的有效位置使用,即对于印章 $ k_i $,其大小为 $ s $,要求 $ -s < x_i < 800 $ 且 $ -s < y_i < 400 $。

数据范围与提示

画布和印章

制作图像的画布宽 800800 像素,高 400400 像素。像素位置由整数对 $ (x, y) $ 表示,满足 $ 0 \le x < 800 ,, 0 \le y < 400 。∗∗注意,。**注意, x $ 坐标从左到右递增,$ y $ 坐标从上到下递增。**每个像素拥有 $ R, G, B $ 三个颜色值,初始时全为 $ 0 $。

印章用大小 $ s $ 和颜色信息 $ (r, g, b) $ 表示。一次印章操作可以在画布的指定位置盖上或移除印章。

具体来说,如果印章 $ (s, r, g, b) $ 被盖在或移除自位置 $ (x_i, y_i) $,那么满足 $ x_i \le x < x_i + s $ 且 $ y_i \le y < y_i + s $ 的所有像素 $ (x, y) $ 的 $ R, G, B $ 值分别增加或减少 $ r, g, b $。如果某像素的值超过 $ 255 $,则变为 $ 255 $;若低于 $ 0 $,则变为 $ 0 $。

达成条件

在区域地图中,由相同颜色的四方向连通的像素组成的部分称作“区域”。图像要被视为“符合区域地图”,必须满足以下条件:

  • 区域内条件:每个区域内,所有像素的 $ R $ 值方差不大于 $ 700 ,, G $ 和 $ B $ 同样如此。
  • 相邻区域条件:将某一区域的“平均色”定义为该区域内所有像素的 $ R, G, B $ 的平均值。对于相邻的两个区域,若它们的平均色分别为 $ (R_1, G_1, B_1) $ 和 $ (R_2, G_2, B_2) $,则需满足 $ (R_1 - R_2)^2 + (G_1 - G_2)^2 + (B_1 - B_2)^2 \ge 80^2 $。

数据

**解题所需的数据已打包成 zip 文件,可以从这里下载。**zip 包含以下文件:

  • stamps/map.png:表示区域地图的图像文件,尺寸为宽 800800 像素,高 400400 像素。
  • stamps/map.txt:与区域地图对应的文本文件,给每个像素分配了区域 ID。
    • 包括 400400 行,每行有 800800 个整数。
  • stamps/stampset.txt:可用印章列表的文本文件。
    • 第一行为印章种类数 $ K $。
    • 接下来的 $ K $ 行是印章的信息,每行由五个整数 $ k, s, r, g, b $ 组成,表示 ID 为 $ k $ 的印章特征为 $ (s, r, g, b) $。印章按 ID 升序排列。
  • stamps/play.html:可视化工具和手动操作工具,可以用于操作可视化和达成条件检测,提交前建议使用。
    • 下方有“加载印章操作”功能,会读取所有合法的印章操作行(因此,符合输出格式的输入时,第一行会被忽略)。
  • stamps/play.js:可视化工具的源代码。

限制条件

上述数据文件中,包括以下重要信息:

  • 图像尺寸是宽 800800 像素和高 400400 像素。
  • 区域个数为 3030,区域 ID 为 00 至 2929。
  • 相同区域 ID 的像素设置是四方向连通的。
  • 印章种类数为 1818,印章 ID 为 00 至 1717。
  • 每个印章的参数满足以下条件:
    • 7≤s≤507 \le s \le 50。
    • 0≤r≤400 \le r \le 40。
    • 0≤g≤400 \le g \le 40。
    • 0≤b≤400 \le b \le 40。

此示例为符合上述格式要求的输出示例(但此输出不满足达成条件,会得到 WA)。

本翻译由 AI 自动生成

输入输出样例

  • 输入#1

    输出#1

    4
    0 100 200 1
    1 -10 5 1
    2 799 300 -1
    0 100 200 1

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

首页