最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 最大值

C++ 少儿编程 1405浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

Alice和Bob是好朋友,这天他们正在玩一个找最大值的游戏。

Alice给出一个含有$n$个正整数的序列$A$(下标从$1$开始编号),以及一个位运算操作符$op$,她想要Bob回答所有$A_i;op;A_j(1≤i<j≤n)$的结果中的最大值。

运算符$op$可能为与运算($and$)、或运算($or$)、异或运算($xor$)。

Bob并不会解答这个问题,你能帮帮他吗?

【输入】

第一行包含一个整数$T$,表示数据组数。

按下来$T$组数据,每组数据第一行包含两个整数$n$,$c$。其中$n$表示序列长度,$c$表示操作符。

当$c=1$时,操作符$op$为与运算($and$)。

当$c=2$时,操作符$op$为异或运算($xor$)。

当$c=3$时,操作符$op$为或运算($or$)。

每组数据第二行包含$n$个整数,第$i$个整数表示序列中的数$A_i$。

【输出】

每组数据输出一行一个整数表示$A_i;op;A_j(1≤i<j≤n)$的最大值

【输入样例】

3
5 1
1 4 5 7 9
5 2
2 3 4 5 7
5 3
9 5 4 2 1

【输出样例】

5
7
13

【提示】

【数据规模】

对于15%的数据:$n≤1000$。

对于另外15%的数据:$A≤1024$。

对于另外20%的数据:$c$均为$1$。

对于另外25%的数据:$c$均为$2$。

对于另外20%的数据:$c$均为$3$。

对于100%的数据:$1≤T≤6,2≤n≤10^5,1≤A_i<220,c∈{1,2,3}$。

您必须 登录 才能发表评论!