luogu#P4869. albus就是要第一个出场
albus就是要第一个出场
题目描述
已知一个长度为 的正整数序列 (下标从 开始),令 , 的幂集 定义为 所有子集构成的集合。定义映射 $f : 2^S \to Z,f(\emptyset) = 0,f(T) = \mathrm{XOR}\{A_t\}, (t \in T)$。
现在 albus 把 中每个集合的 值计算出来,从小到大排成一行,记为序列 (下标从 开始)。
给定一个数 ,求问 在序列 中第 次出现时的下标是多少?
数据保证 一定在序列 中出现。
输入格式
第一行一个数 , 为序列 的长度。接下来一行 个数,为序列 ,用空格隔开。最后一个数 ,为给定的数。
输出格式
共一行,一个整数,为 在序列 中第一次出现时的下标模 的值。
3
1 2 3
1
3
提示
【样例解释】
$$N = 3,A = [1,2,3] \\ S = \{1,2,3\} \\ 2^S = \{\emptyset,\{1\},\{2\},\{3\},\{1,2\},\{1,3\},\{2,3\},\{1,2,3\}\} \\ f(\emptyset) = 0 \\ f({1}) = 1 \\ f({2}) = 2 \\ f({3}) = 3 \\ f({1, 2}) = 1 \operatorname{xor} 2 = 3 \\ f({1, 3}) = 1 \operatorname{xor} 3 = 2 \\ f({2, 3}) = 2 \operatorname{xor} 3 = 1 \\ f({1, 2, 3}) = 0 \\$$所以
【数据范围】
其他所有输入均不超过 。