D. “或”问题

    Type: Default 1000ms 256MiB

“或”问题

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.

题目描述

AA 最近在学习位运算相关知识,但是他遇到了一个问题,想委托你帮他解决一下

给定一个长度为 nn 的非负整数数组 a(a1,a2,ana (a_1,a_2 \ldots ,a_n) ,我可以执行以下操作不超过 nn 次:

选择 i,ji,j ,使得 1i,jn1\le i,j \le n , 任取一个 xx 使得 0x1090\le x \le 10^9 ,然后设置 ai=ai+x , aj=ajxa_i = a_i + x \ , \ a_j = a_j - x

我必须确保每次运算后所有 aia_i ( 1in1 \le i \le n) 都保持非负整数

我的目标是使运算后的 a1  a2  ana_1\ | \ a2\ | \ldots | \ a_n 最小

OR 运算逐位比较两个二进制数。在每个位上,如果至少有一个位是 11 ,那么结果就是 11 ;否则,就是 00

例如,二进制数 10=101010 = 1010 12=110012 = 1100OR 结果是 14=111014 = 1110

输入格式

第一行包含一个整数 nn ( 1n2×1051\le n\le 2\times 10^5 ),代表数组的长度。

第二行包含 nn 个非负整数 aia_i ( 0ai1090\le a_i\le 10^9 )。

输出格式

一行包含一个整数,代表答案,即最小化的 a1  a2    ana_1 \ | \ a_2 \ | \ \ldots \ | \ a_n 值。

输入样例

7
1 9 1 9 8 1 0

输出样例

5

提示

在本例中,一个可行的最终结果是 [5,5,5,5,5,4,0][5,5,5,5,5,4,0] ,它的最小结果等于 55 。可以证明没有更好的结果。

实现这一结果的一个可行方法是 $[1,9,1,9,8,1,0] \rightarrow [5,5,1,9,8,1,0] \rightarrow [5,5,5,5,8,1,0]$ [5,5,5,5,5,4,0]\rightarrow [5,5,5,5,5,4,0] ,总共需要 33 步。

限制与约定

对于30%30\%的样例 1n10001\le n\le 1000 0ai10000\le a_i\le 1000

对于100%100 \% 的样例 1n2×1050ai1091\le n\le 2\times 10^5,0\le a_i\le 10^9

  • 时间限制: 1s1 s
  • 空间限制: 256MB256 MB

竞赛A班5.5日

Not Attended
Status
Done
Rule
IOI
Problem
5
Start at
2025-5-5 13:00
End at
2025-5-19 13:00
Duration
336 hour(s)
Host
Partic.
5