3.6 预处理和优化
(1) 预处理
1. 数学性分析,找出一定规律,减少搜索范围。
【问题描述】在 IOI98①的节日宴会上,我们有 N(10≤N≤100)盏彩色灯,他们分别从 1 到 N 被标上号码。
这些灯都连接到四个按钮。
按钮 1:当按下此按钮,将改变所有的灯,使本来亮着的灯熄灭,本来是关着的灯被点亮。
按钮 2:当按下此按钮,将改变所有奇数号的灯。
按钮 3:当按下此按钮,将改变所有偶数号的灯。
按钮 4:当按下此按钮,将改变所有序号是 3k+1(k≥0)的灯,例如 1,4,7……
此外一个计数器 C 记录按钮被按下的次数。当宴会开始,所有的灯都亮着,此时计数器 C 为 0。
你将得到计数器 C(0≤C≤10000)上的数值和经过若干操作后所有灯的状态。写一个程序去找出所有灯
最后可能的与所给出信息相符的状态,并且没有重复。
【分析】
灯的状态多达 2
100 个,似乎无法枚举。
为了找到按钮之间的联系和控制规律,我们不妨列个表说明一下(“√”表示能被按钮控制):
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |