QOJ.ac

QOJ

總分: 100 僅輸出

#13816. 异或

统计

你正在为一部拥有黑白屏幕的手机开发一个应用程序。屏幕的 $x$ 坐标从左侧开始, $y$ 坐标从顶部开始,如插图所示。对于该应用程序,你需要各种不同尺寸的图像。你不想直接存储这些图像,而是希望使用手机的图形库来生成它们。你可以假设在开始绘制图像时,屏幕上的所有像素都是白色的。手机图形库中唯一的图形操作是 XOR(L, R, T, B),它将翻转以左上角坐标为 $(L, T)$、右下角坐标为 $(R, B)$ 的矩形区域内的像素值。其中 $L$ 代表左边界,$T$ 代表上边界,$R$ 代表右边界,$B$ 代表下边界。请注意,在其他一些图形库中,参数的顺序可能会有所不同。

作为一个例子,考虑 Figure-3 中的图像。对全白图像应用 XOR(2, 4, 2, 6) 可以得到 Figure-1 中的图像。对 Figure-1 的图像应用 XOR(3, 6, 4, 7) 可以得到 Figure-2 中的图像,最后对 Figure-2 的图像应用 XOR(1, 3, 3, 5) 即可得到 Figure-3 中的图像。

Figure-1, Figure-2, Figure-3

给定一组黑白图像,你的任务是使用尽可能少的 XOR 调用,从初始全白的屏幕生成每幅图像。你将获得描述这些图像的输入文件,你需要提交包含所需 XOR 调用参数的文件,而不是用于生成这些文件的程序。

输入格式

你将在名为 xor1.inxor10.in 的文本文件中获得 10 个问题实例。每个输入文件的结构如下:

输入文件的第一行包含一个整数 $N$($5 \le N \le 2000$),表示图像有 $N$ 行和 $N$ 列。

接下来的各行自上而下表示图像的每一行。每行包含 $N$ 个整数:表示该行从左到右的像素值。这些整数要么是 $0$,要么是 $1$,其中 $0$ 表示白色像素,$1$ 表示黑色像素。

输出格式

你需要提交与给定输入文件相对应的 10 个输出文件。

第一行包含以下文本:

#FILE xor I

其中整数 $I$ 是对应输入文件的编号。

第二行包含一个整数 $K$:表示文件中指定的 XOR 调用次数。

接下来的 $K$ 行表示这些调用,按照从第一次调用到最后一次调用的顺序执行。这 $K$ 行中的每一行都包含四个整数:依次为 XOR 调用的参数 $L, R, T, B$。

样例

输入样例 1

7
0 0 0 0 0 0 0
0 1 1 1 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 1 0
1 0 1 0 1 1 0
0 1 0 0 1 1 0
0 0 1 1 1 1 0

输出样例 1

#FILE xor 0
3
2 4 2 6
3 6 4 7
1 3 3 5

评分方式

如果满足以下任一条件:

  • 你的输出文件中指定的 XOR 调用未能生成所需的图像,或
  • 你的输出文件中指定的 XOR 调用次数不等于 $K$,或
  • 在你的输出文件中,$K > 40000$,或
  • 你的输出文件包含满足 $L > R$ 或 $T > B$ 的 XOR 调用,或
  • 你的输出文件包含坐标不为正数(即 $\le 0$)的 XOR 调用,或
  • 你的输出文件包含坐标值超过 $N$ 的 XOR 调用,

则你的该测试点得分为 0 分。否则,你的得分计算公式为:

$$1 + 9 \times \frac{\text{所有参赛者中的最佳答案调用次数}}{\text{你的答案中的调用次数}}$$

每个测试点的得分将四舍五入保留到小数点后一位。总得分将四舍五入到最接近的整数。

假设你提交了一个使用 $121$ 次 XOR 调用的解决方案。如果这是所有参赛者中最好的提交,你的得分将是 $10$ 分。如果所有参赛者提交的最佳解决方案使用了 $98$ 次 XOR 调用,你的得分将变为 $1 + 9 \times 98 / 121 \approx 8.289 \dots$,四舍五入后为 $8.3$ 分。


或者逐个上传:

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.