请问如何解决这一问题?
n名同学排成一列,每人头顶一盏LED灯,编号从1到n。一开始这n名同学随机开关自己的LED灯,形成明暗相间的图案。用1表示开,0表示关。
你被选为发令员,向同学们发出“切换开关”的指令,以使所有的灯关闭或者点亮。在整个过程中,仅允许你的指令改变一种状态。然后周而复始。例如,对于以上图案,你可以喊:
请1到2号同学切换开关,请6到8号同学切换开关,请10号同学切换开关,请13到14号同学切换开关,请18号同学切换开关。通过5次指令点亮了所有的灯。你也可以采用4次指令关闭所有的灯,但最佳方案无疑应该是后者。如果有多个相同次数的指令序列,输出任意一个即可。
任意给定一个初始图案,请你给出一个最佳指令方案,使得所有灯关闭或点亮。输入格式如下,第1个数字代表灯的个数n,随后的n个字符代表n盏灯的明灭情况。例如18 001110001011001110,则输出为
请3到5号同学切换开关
请9号同学切换开关
请11到12号同学切换开关
请15到17号同学切换开关
程序要求:定义并调用lightshow函数来解决问题。该函数的代码行数在12行以下,每行一条指令。