#HK4876. 「PA 2025」Migawka

「PA 2025」Migawka

题目描述

题目译自 PA 2025 Runda 5 Migawka

Bajtek 在玩一台老旧的黑白电视,屏幕大小是 100×100100 \times 100 像素。他可以随意设置哪个像素点亮、哪个熄灭,画出任何图案。但这台电视有故障,显示的图案通常撑不了多久。

对于一个由 4 个角对角相邻的像素组成的 2×22 \times 2 小方块,如果其中正好两个对角像素点亮,我们称为坏方块。每秒钟,电视会翻转所有属于至少一个坏方块的像素状态——亮的变暗,暗的变亮。

例如,想象一台 4×44 \times 4 像素的电视,初始状态如左图所示。接下来的图展示了接下来四秒屏幕的样子:

Bajtek 想利用这个特性,让屏幕图案尽可能长时间不重复。换句话说,他希望最大化某个图案重复出现前的时间。上面的例子中,第 3 秒的图案和第 1 秒相同,所以有 33 个独特图案。

你的任务是找出一个初始像素状态并输出。你的得分取决于在图案重复出现之前经过的时间有多长。

输入格式

这道题没有输入数据。

输出格式

输出 100100 行,每行是一个由 100100 个字符(1100)组成的字符串,表示电视屏幕的初始配置(11 表示点亮,00 表示熄灭)。

评分规则

你的程序若在图案重复出现的之前经过的时间(秒数)至少为 (10i1)2(10 \cdot i - 1)^{2} (1i10)(1\leq i\leq 10),则得 10×i10\times i 分。

测试工具

在「文件」界面,有一个可视化工具的压缩包。包含一个 Python 脚本(需安装 matplotlibnumpy 库),可以展示配置变化。

运行可视化命令:

python3 visualise.py < mig.txt

压缩包内还有一个样例文件 mig.txt。你可以根据需要自由修改这个可视化工具。

注意:我们尽力确保可视化对癫痫患者安全,但请谨慎使用。