#1479. 结构体合并
结构体合并
题目描述
你有 个结构体,每个结构体有一个头标记和一个尾标记。结构体们围成一个圆环。
你有一种魔法,可以将两个相邻的结构体 合并为一个新的结构体 。也就是说,如果前一个结构体的头标记为 ,尾标记为 ,后一个结构体的头标记为 ,尾标记为 ,则合并后新产生的结构体头标记为 ,尾标记为 。
每次使用魔法都会消耗魔力值。对于相邻结构体 ,合并操作消耗的魔力值为 。(其中, 为异或运算符,可见提示说明 )
你可以多次使用魔法,直到最后仅剩下一个结构体,此后不能再使用魔法。
你初始拥有魔力值 ,问在多次使用魔法后到不能再使用魔法时,剩余的魔力值可能的最小值是多少。
输入格式
第一行输入一个正整数 ,代表结构体的个数。
第二行输入一个正整数 ,代表你初始拥有的魔力值。
第三行是 个用空格隔开的正整数,所有的数均不超过 。第 个数为第 个结构体的头标记 ,当 时,第 个结构体的尾标记应该等于第 个结构体的头标记。第 个结构体的尾标记应该等于第 个结构体的头标记。
输出格式
一个整数,代表剩余的魔力值可能的最小值。保证答案为非负整数,并且答案 。
输入输出样例 #1
输入 #1
4
16
1 2 3 4
输出 #1
0
输入输出样例 #2
输入 #2
5
100
2 3 5 7 8
输出 #2
59
样例1解释:
初始结构体:。
合并第二个和第三个:,魔力值 $2 \text{\textasciicircum} 3 \text{\textasciicircum} 4=5$ 。
合并前两个:,魔力值 $1 \text{\textasciicircum} 2 \text{\textasciicircum} 4=7$ 。
合并剩下的,魔力值 $1 \text{\textasciicircum} 4 \text{\textasciicircum} 1=4$ 。
总消耗魔力值 ,这是使得剩余的魔力值为最小值的情况。
注意:结构体们围成一个圆环,开头的和末尾的结构体也是相邻的。
关于异或操作的说明:
异或( XOR,记作 ^ )是一种二进制位运算,规则如下:
对于两个二进制数的每一位:
- 如果对应位的值相同(同为
0或同为1),则结果的该位为0; - 如果对应位的值不同(一个为
0,一个为1),则结果的该位为1。
示例:
-
5^3的计算:
5的二进制:0101
3的二进制:0011
逐位异或结果:0110(即十进制的6)
∴5^3 = 6说明/提示
对于 的样例,,
对于 的样例,,
- 时间限制:
- 空间限制: