E. 结构体合并

    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.

题目描述

你有 nn 个结构体,每个结构体有一个头标记和一个尾标记。结构体们围成一个圆环

你有一种魔法,可以将两个相邻的结构体 (a,x),(x,b)(a,x),(x,b) 合并为一个新的结构体 (a,b)(a,b)。也就是说,如果前一个结构体的头标记为 aa,尾标记为 xx,后一个结构体的头标记为 xx,尾标记为 bb,则合并后新产生的结构体头标记为 aa,尾标记为 bb

每次使用魔法都会消耗魔力值。对于相邻结构体 (a,x),(x,b)(a,x),(x,b),合并操作消耗的魔力值为 a xor x xor ba \text{ xor } x \text{ xor } b。(其中, xor \text{ xor } 为异或运算符,可见提示说明 )

你可以多次使用魔法,直到最后仅剩下一个结构体,此后不能再使用魔法。

你初始拥有魔力值 HH,问在多次使用魔法后到不能再使用魔法时,剩余的魔力值可能的最小值是多少。

输入格式

第一行输入一个正整数 nn,代表结构体的个数。

第二行输入一个正整数 HH,代表你初始拥有的魔力值。

第三行是 nn 个用空格隔开的正整数,所有的数均不超过 100000100000。第 ii 个数为第 ii 个结构体的头标记 1in(1≤i≤n),当 i<ni<n 时,第 ii 个结构体的尾标记应该等于第 i+1i+1 个结构体的头标记。第 nn 个结构体的尾标记应该等于第 11 个结构体的头标记。

输出格式

一个整数,代表剩余的魔力值可能的最小值。保证答案为非负整数,并且答案 109 \leq 10^9

输入输出样例 #1

输入 #1

4
16 
1 2 3 4

输出 #1

0

输入输出样例 #2

输入 #2

5
100
2 3 5 7 8

输出 #2

59

样例1解释:

初始结构体:(1,2)(2,3)(3,4)(4,1)(1,2)(2,3)(3,4)(4,1)

合并第二个和第三个:(1,2)(2,4)(4,1)(1,2)(2,4)(4,1),魔力值 $2 \text{\textasciicircum} 3 \text{\textasciicircum} 4=5$ 。

合并前两个:(1,4)(4,1)(1,4)(4,1),魔力值 $1 \text{\textasciicircum} 2 \text{\textasciicircum} 4=7$ 。

合并剩下的,魔力值 $1 \text{\textasciicircum} 4 \text{\textasciicircum} 1=4$ 。

总消耗魔力值 5+7+4=165+7+4=16,这是使得剩余的魔力值为最小值的情况。

注意:结构体们围成一个圆环,开头的和末尾的结构体也是相邻的。


关于异或操作的说明:

异或( XOR,记作 ^ )是一种二进制位运算,规则如下:

对于两个二进制数的每一位:

  • 如果对应位的值相同(同为 0 或同为 1),则结果的该位为 0
  • 如果对应位的值不同(一个为 0,一个为 1),则结果的该位为 1

示例:

  • 5^3 的计算:
    5 的二进制:0101
    3 的二进制:0011
    逐位异或结果:0110(即十进制的 6
    5^3 = 6

    说明/提示

对于 40%40\% 的样例,(4n10)(4 \leq n \leq 10)(H109)(H \leq 10^9)

对于 100%100\% 的样例,(4n100)(4 \leq n \leq 100)(H109)(H \leq 10^9)

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