题目分析
> 二进制模拟
有 303030 盏灯,编号为 [0,29][0,29][0,29],一开始所有的灯都是熄灭的,灯只有两种状态开与关。
设 sss 初始为 000。
当第 iii 盏灯亮时,s=s+2is = s + 2^{i}s=s+2i,当第 iii 盏灯熄灭时 s=s−2is = s - 2^{i}s=s−2i。
对于第 iii 盏灯的状态,我们可以用二进制中的 111 与 000 表示,即 sss 在二进制下的第 iii 位。如编号为 1,4,51,4,51,4,5 的灯亮, sss 在二进制中为 0b110010。
控制某个灯的开关,按照题目意思开着会变为关,关的会变为开,用异或就行了。
AC代码
复杂度分析
O(t)O(t)O(t)。