#abc128c. [abc128_c]Switches
[abc128_c]Switches
问题描述
我们有 个开关,有 "on" 和 "off" 两种状态,还有 个灯泡。开关从 编号到 ,灯泡从 编号到 。
灯泡 连接到 个开关:开关 ,,...,。当这些开关中处于 "on" 状态的数量对 取模后与 相等时,灯泡才会亮。
有多少种开关的 "on" 和 "off" 状态的组合可以点亮所有的灯泡?
约束条件
- 是 或 。
- 输入中的所有值都是整数。
输入
输入数据从标准输入读取,输入格式如下:
:
参见示例输入1。
输出
打印出所有能点亮所有灯泡的开关的 "on" 和 "off" 状态的组合数。
示例输入1
2 2
2 1 2
1 2
0 1
示例输出1
1
- 灯泡 1 只在以下开关中处于 "on" 状态的数量为偶数时亮:开关 1 和 2。
- 灯泡 2 只在以下开关中处于 "on" 状态的数量为奇数时亮:开关 2。
存在四种开关状态的组合 (开关 1,开关 2):(on, on),(on, off),(off, on) 和 (off, off)。其中,只有 (on, on) 能点亮所有的灯泡,所以我们应该输出 1。
示例输入2
2 3
2 1 2
1 1
1 2
0 0 1
示例输出2
0
- 灯泡 1 只在以下开关中处于 "on" 状态的数量为偶数时亮:开关 1 和 2。
- 灯泡 2 只在以下开关中处于 "on" 状态的数量为偶数时亮:开关 1。
- 灯泡 3 只在以下开关中处于 "on" 状态的数量为奇数时亮:开关 2。
开关 1 必须处于 "off" 状态才能亮灯泡 2,而开关 2 必须处于 "on" 状态才能亮灯泡 3,但这样会导致灯泡 1 不亮。因此,没有任何一种开关状态的组合可以点亮所有的灯泡,所以我们应该输出 0。
示例输入3
5 2
3 1 2 5
2 2 3
1 0
示例输出3
8