Java数据结构与算法(关灯游戏)
程序员文章站
2022-05-28 21:33:35
原题链接题目描述在Alice生日的那天,Bob送给了她n个灯泡。他们决定用这些灯泡玩一个游戏:他们把这些灯泡从左往右排成一行,在初始时,有些灯泡是点亮的,有些灯泡是熄灭的。接下来,他们轮流进行操作,Alice首先操作。在每一次操作中,轮到操作的人需要选择一个点亮的灯泡,然后把它以及它右边的所有灯泡的状态进行一次改变,即把点亮的灯泡熄灭,把熄灭的灯泡点亮。如果在某一个人操作完之后,所有的灯泡都变成了熄灭状态,那么那个人就赢得了游戏。Alice和Bob都想赢得游戏,在他们都足够聪明的情况下...
题目描述
在Alice生日的那天,Bob送给了她n个灯泡。他们决定用这些灯泡玩一个游戏:
他们把这些灯泡从左往右排成一行,
在初始时,有些灯泡是点亮的,有些灯泡是熄灭的。
接下来,他们轮流进行操作,Alice首先操作。
在每一次操作中,轮到操作的人需要选择一个点亮的灯泡,
然后把它以及它右边的所有灯泡的状态进行一次改变,
即把点亮的灯泡熄灭,把熄灭的灯泡点亮。
如果在某一个人操作完之后,所有的灯泡都变成了熄灭状态,
那么那个人就赢得了游戏。
Alice和Bob都想赢得游戏,在他们都足够聪明的情况下,最后谁会赢呢?
输入描述
第一行包含一个整数 ,表示灯泡的个数。1 ≤ n ≤ 10^5
第二行包含 个 0 或 1,表示初始时灯泡的状态,0 表示熄灭,1 表示点亮。
输出描述
如果最后Alice能赢,输出Alice,或则输出Bob。
示例
输入:
3
0 1 1
输出:
Alice
输入:
5
1 1 1 0 0
输出:
Bob
参考解法
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int a[] = new int[n]; for (int i = 0; i < a.length; i++) { a[i] = sc.nextInt(); } //最后一个灯为0,为了将所有灯熄灭,必操作偶数次,则Bob必胜; //最后一个灯为1,为了将所有灯熄灭,必操作奇数次,则Alice必胜; if(a[n-1]==0){ System.out.println("Bob"); }else{ System.out.println("Alice"); } } }
本文地址:https://blog.csdn.net/Awt_FuDongLai/article/details/108037095
上一篇: mybatis-plus如何使用的一些问题经验总结
下一篇: 牛腩的营养价值及功效