THE HERMIT

题目描述
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.
Hehas chosen this path of self-discovery and, asa result, has reached a heighted state of awareness.

dhh loves to listen to radio. There are 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 means 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 and 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.

输入
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

输出
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.

样例输入
2
7
1 2 3 4 3 2 1
10
1 1 2 3 4 4 3 2 2 1

样例输出
Case 1: 2
Case 2: 0

提示
In the first testcase of t he example, t he number of stations that can receive t he 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 T;
    scanf("%d",&T);
    for(int id=1;id<=T;id++)
    {
        int n;
        int ans=0;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            int temp;
            scanf("%d",&temp);
            temp=max(0,min(i-2,temp-2));
            ans^=temp;
        }
        printf("Case %d: %d\n",id,ans);
    }
    return 0;
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值