CF1848F.Vika and Wiki
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Recently, Vika was studying her favorite internet resource - Wikipedia.
On the expanses of Wikipedia, she read about an interesting mathematical operation bitwise XOR, denoted by ⊕.
Vika began to study the properties of this mysterious operation. To do this, she took an array a consisting of n non-negative integers and applied the following operation to all its elements at the same time: ai=ai⊕a(i+1)modn. Here xmody denotes the remainder of dividing x by y. The elements of the array are numbered starting from 0.
Since it is not enough to perform the above actions once for a complete study, Vika repeats them until the array a becomes all zeros.
Determine how many of the above actions it will take to make all elements of the array a zero. If this moment never comes, output −1.
最近,维卡正在学习她最喜欢的网络资源——维基百科。
在维基百科的广阔内容中,她了解了一种有趣的数学运算:按位异或(bitwise XOR),记作 ⊕。
维卡开始研究这一神秘运算的性质。为此,她取了一个由 n 个非负整数组成的数组 a,并对其中所有元素同时执行如下操作:ai=ai⊕a(i+1)modn。此处 xmody 表示 x 除以 y 的余数。数组元素的编号从 0 开始。
由于仅执行一次上述操作不足以完成全面研究,维卡不断重复该操作,直到数组 a 中所有元素均变为 0。
请确定需要执行多少次上述操作才能使数组 a 的所有元素都变为 0。若该状态永远无法达到,则输出 −1。
输入格式
The first line contains a single integer n (1≤n≤220) - the length of the array a.
It is guaranteed that n can be represented as 2k for some integer k (0≤k≤20).
The second line contains n integers a0,a1,a2,…,an−1 (0≤ai≤109) - the elements of the array a.
第一行包含一个整数 n(1≤n≤220)——数组 a 的长度。
保证 n 可表示为 2k 的形式,其中 k 为某个整数(0≤k≤20)。
第二行包含 n 个整数 a0,a1,a2,…,an−1(0≤ai≤109)——数组 a 的元素。
输出格式
Output a single number - the minimum number of actions required to make all elements of the array a zero, or −1 if the array a will never become zero.
输出一个整数——使数组 a 的所有元素变为零所需的最少操作次数;如果数组 a 永远无法全部变为零,则输出 −1。
输入输出样例
输入#1
4 1 2 1 2
输出#1
2
输入#2
2 0 0
输出#2
0
输入#3
1 14
输出#3
1
输入#4
8 0 1 2 3 4 5 6 7
输出#4
5
说明/提示
In the first example, after one operation, the array a will become equal to [3,3,3,3]. After one more operation, it will become equal to [0,0,0,0].
In the second example, the array a initially consists only of zeros.
In the third example, after one operation, the array a will become equal to [0].
在第一个例子中,经过一次操作后,数组 a 将变为 [3,3,3,3];再经过一次操作后,它将变为 [0,0,0,0]。
在第二个例子中,数组 a 初始时仅由零组成。
在第三个例子中,经过一次操作后,数组 a 将变为 [0]。
输入解题思路,AI测评打分。不知道怎么写?