Type: Default 1000ms 256MiB

最大的K

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

给定一个正整数nn,找到满足以下条件的最大整数kk的值:

n&(n1)&(n2)&(n3)&...(k)=0 n \& (n−1) \& (n−2) \& (n−3) \& ... (k) = 0

其中&\&表示按位与ANDAND操作。其功能是参与运算的两数各对应的二进制相与。只有对应的两个二进制都为1时,结果位才为1。

规则:

1&1=11\&1=1

1&0=01\&0=0

0&1=00\&1=0

0&0=00\&0=0

输入格式

第一行包含一个正整数tt。表示接下来有tt个测试用例。

每个测试用例的第一行包含一个正整数nn

输出格式

对于每个测试用例,输出一个整数,即所求的整数kk

3
2
5
17
1
3
15

提示

【样例解释】

在第一个测试用例中,连续进行按位与操作得到0值的最大值是1。

在第二个测试用例中,连续进行位与操作得到0值的最大值是3。没有比3更大的值。

  • 5&405 \& 4\neq 0
  • 5&4&3=05\&4\&3 = 0

因此,答案是3。

【数据范围】

对于20%20\%的数据,保证t=10,n103t=10,n\leq 10^3

对于40%40\%的数据,保证t102,n105t\leq10^2,n\leq 10^5

对于60%60\%的数据,保证t104,n107t\leq10^4,n\leq 10^7

对于100%100\%的数据,保证t3104,n109t\leq3\cdot10^4,n\leq 10^9

C23本部国庆集训测试

Not Attended
Status
Done
Rule
IOI
Problem
7
Start at
2023-10-5 13:30
End at
2023-10-5 15:30
Duration
2 hour(s)
Host
Partic.
10