我是靠谱客的博主 开朗网络,这篇文章主要介绍刷题10-关灯游戏,现在分享给大家,希望可以做个参考。

原题链接

题目描述

复制代码
1
2
3
4
5
6
7
8
9
10
11
在Alice生日的那天,Bob送给了她n个灯泡。他们决定用这些灯泡玩一个游戏: 他们把这些灯泡从左往右排成一行, 在初始时,有些灯泡是点亮的,有些灯泡是熄灭的。 接下来,他们轮流进行操作,Alice首先操作。 在每一次操作中,轮到操作的人需要选择一个点亮的灯泡, 然后把它以及它右边的所有灯泡的状态进行一次改变, 即把点亮的灯泡熄灭,把熄灭的灯泡点亮。 如果在某一个人操作完之后,所有的灯泡都变成了熄灭状态, 那么那个人就赢得了游戏。 Alice和Bob都想赢得游戏,在他们都足够聪明的情况下,最后谁会赢呢?

输入描述

复制代码
1
2
3
第一行包含一个整数 ,表示灯泡的个数。1 ≤ n ≤ 10^5 第二行包含 个 0 或 1,表示初始时灯泡的状态,0 表示熄灭,1 表示点亮。

输出描述

复制代码
1
2
如果最后Alice能赢,输出Alice,或则输出Bob。

示例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
输入: 3 0 1 1 输出: Alice 输入: 5 1 1 1 0 0 输出: Bob

参考解法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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"); } } }

最后

以上就是开朗网络最近收集整理的关于刷题10-关灯游戏的全部内容,更多相关刷题10-关灯游戏内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部