CF1732C1.Sheikh (Easy version)
普及/提高-
通过率:0%
时间限制:4.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
This is the easy version of the problem. The only difference is that in this version q=1.
You are given an array of integers a1,a2,…,an.
The cost of a subsegment of the array [l,r], 1≤l≤r≤n, is the value f(l,r)=sum(l,r)−xor(l,r), where sum(l,r)=al+al+1+…+ar, and xor(l,r)=al⊕al+1⊕…⊕ar (⊕ stands for bitwise XOR).
You will have q=1 query. Each query is given by a pair of numbers Li, Ri, where 1≤Li≤Ri≤n. You need to find the subsegment [l,r], Li≤l≤r≤Ri, with maximum value f(l,r). If there are several answers, then among them you need to find a subsegment with the minimum length, that is, the minimum value of r−l+1.
这是该问题的简单版本。唯一的区别是,在此版本中 q=1。
给你一个整数数组 a1,a2,…,an。
数组子段 [l,r](其中 1≤l≤r≤n)的代价定义为值 f(l,r)=sum(l,r)−xor(l,r),其中 sum(l,r)=al+al+1+…+ar,而 xor(l,r)=al⊕al+1⊕…⊕ar(⊕ 表示按位异或)。
你将收到 q=1 个查询。每个查询由一对数 Li, Ri 给出,满足 1≤Li≤Ri≤n。你需要找出满足 Li≤l≤r≤Ri 的子段 [l,r],使其代价 f(l,r) 最大。若存在多个这样的子段,则需在其中找出长度最小者,即 r−l+1 最小者。
输入格式
Each test consists of multiple test cases. The first line contains an integer t (1≤t≤104) — the number of test cases. The description of test cases follows.
The first line of each test case contains two integers n and q (1≤n≤105, q=1) — the length of the array and the number of queries.
The second line of each test case contains n integers a1,a2,…,an (0≤ai≤109) — array elements.
i-th of the next q lines of each test case contains two integers Li and Ri (1≤Li≤Ri≤n) — the boundaries in which we need to find the segment.
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.
It is guaranteed that L1=1 and R1=n.
每个测试包含多个测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。随后是各测试用例的描述。
每个测试用例的第一行包含两个整数 n 和 q(1≤n≤105,q=1),分别表示数组长度和查询次数。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(0≤ai≤109),即数组元素。
每个测试用例接下来的 q 行中,第 i 行包含两个整数 Li 和 Ri(1≤Li≤Ri≤n),表示需要查找区间的左右边界。
保证所有测试用例的 n 值之和不超过 2⋅105。
保证 L1=1 且 R1=n。
输出格式
For each test case print q pairs of numbers Li≤l≤r≤Ri such that the value f(l,r) is maximum and among such the length r−l+1 is minimum. If there are several correct answers, print any of them.
对每个测试用例,输出 q 对数字 Li≤l≤r≤Ri,使得函数值 f(l,r) 达到最大;在所有使 f(l,r) 最大的区间中,要求长度 r−l+1 最小。若存在多个正确答案,输出任意一个即可。
输入输出样例
输入#1
6 1 1 0 1 1 2 1 5 10 1 2 3 1 0 2 4 1 3 4 1 0 12 8 3 1 4 5 1 21 32 32 32 10 1 5 7 1 0 1 0 1 0 1 0 1 7
输出#1
1 1 1 1 1 1 2 3 2 3 2 4
说明/提示
In the first test case, f(1,1)=0−0=0.
In the second test case, f(1,1)=5−5=0, f(2,2)=10−10=0. Note that f(1,2)=(10+5)−(10⊕5)=0, but we need to find a subsegment with the minimum length among the maximum values of f(l,r). So, only segments [1,1] and [2,2] are the correct answers.
In the fourth test case, f(2,3)=(12+8)−(12⊕8)=16.
There are two correct answers in the fifth test case, since f(2,3)=f(3,4) and their lengths are equal.
在第一个测试用例中,f(1,1)=0−0=0。
在第二个测试用例中,f(1,1)=5−5=0,f(2,2)=10−10=0。注意 f(1,2)=(10+5)−(10⊕5)=0,但我们需要在所有使 f(l,r) 取得最大值的子段中,找出长度最短的一个。因此,仅子段 [1,1] 和 [2,2] 是正确答案。
在第四个测试用例中,f(2,3)=(12+8)−(12⊕8)=16。
第五个测试用例中有两个正确答案,因为 f(2,3)=f(3,4),且它们的长度相等。
输入解题思路,AI测评打分。不知道怎么写?