Problem Description
The Hermit stands alone on the top of a mountain with a lantern in his hand. The snow-capped mountain range symbolises the Hermit’s spiritual achievement, growth and accomplishment. He has chosen this path of self-discovery and, as a result, has reached a heighted state of awareness
dhh loves to listen to radio. There are N radio stations on a number axis, and the i-th station is located at xi = i . The broadcasting scope of the i -th station is radi , which means stations in the interval [i - radi + 1, i + radi - 1] can receive the signal from the i -th station. For some unknown reason, the left boundary that can receive the i -th station’s signal is non-descending, which meansi i - radi + 1 ≤ i + 1 - radi+1 + 1.
Now dhh wants to listen to the radio from station i , and he finds that the station k , satisfying both of the following conditions, can receive perfect signal from the station i :
- k < i and station k can receive station i’s signal.
- There exists another station j (k ≤ j < i ) such that station k and i can both receive the signal from station j and the distance between station k and j is greater than or equal to the distance between station j and i .
- Now dhh wonders for each station i , how many stations can receive the perfect signal from station i .
Input
The first line of the input contains one integer T ≤ 20, denoting the number of testcases. Then T testcases follow. For each testcase:
- The first line contains one positve integer N .
- The second line contains N positive integers rad1 , rad2 , ... , radN .
- It’s guaranteed that 1 ≤ N ≤ 106 ,i - radi + 1 ≥ 1 and i + radi - 1 ≤ N
Output
For the k -th testcase, output “Case k : ans ” in one line, where ans represents the xor result of answer for each radio station i .
xor is a bitwise operation, which takes two bit patterns of equal length and performs the logical exclusive OR operation on each pair of corresponding bits. The result in each position is 1 if only the first bit is 1 or only the second bit is 1, but will be 0 if both are 0 or both are 1. In this we perform the comparison
of two bits, being 1 if the two bits are different, and 0 if they are the same.
Sample Input
2
7
1 2 3 4 3 2 1
10
1 1 2 3 4 4 3 2 2 1
Sample Output
Case 1: 2
Case 2: 0
Hint
In the first testcase of the example, the number of stations that can receive the perfect signal from each station $i$ is respectively 0, 0, 1, 2, 1, 0, 0 in order, so the answer must be
0 xor 0 xor 1 xor 2 xor 1 xor 0 xor 0 = 2、
【题解】
异或问题
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int repeat;
scanf("%d",&repeat);
for(int Case=1;Case<=repeat;Case++)
{
int n;
int ans=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int R,temp;
scanf("%d",&R);
temp=max(0,min(i-2,R-2));
ans^=temp;
}
printf("Case %d: %d\n",Case,ans);
}
return 0;
}