#610. 看球的巴士
看球的巴士
Description
有 个球迷一起坐车去看球,他们已经排成了一列队伍。活动主办方准备了 辆巴士来接送球迷。
为了方便乘车,球迷必须按排好的顺序依次上车,即同一辆巴士上的球迷在原队伍中必须是连续的。另外,尽管巴士非常大,没有限载人数,但一辆巴士上的球迷过多,会有爆发冲突的风险。同时,为了提高利用率,每辆巴士至少要载一个球迷,不能空载。
现在主办方让你来安排球迷乘车。这是一件非常棘手的事情,因为球迷们在一个封闭的空间爆发冲突的风险实在太大了。
已知队伍中第 个球迷爆发冲突的风险值为 。一辆巴士上爆发冲突的风险值等于该巴士上所有球迷的风险值的 异或和 。具体地,若第 辆巴士上载的球迷是第 个至第 个球迷,则该巴士的风险值 ,其中 ⊕ 表示 异或 运算符。
总风险值(记为 )则等于各辆巴士风险值的 按位或 的值,即 ,其中 | 表示 按位或 运算符。
你自然希望总风险值 越小越好。如何安排乘车,可以使得总风险值 最小呢?
你只需要输出总风险值 的最小值。
Input
第一行:两个正整数
第二行: 个整数
Output
一个整数,表示总风险值 的最小值。
Sample Input
3 2
1 2 3
Sample Output
1
Sample Hint
两种乘车方案:
(1)[1, 2], [3] 总风险值 = (1 ⊕ 2) | 3 = 3
(2)[1], [2, 3] 总风险值 = 1 | (2 ⊕ 3) = 1
显然,第(2)种乘车方案总风险值最小。
Data Size
相关
在下列比赛中: