在一个前沿的量子计算实验中,一组 个量子比特(qubit)被初始化到一个特定的纠缠态。 然而,为了进行下一步的计算,必须将所有量子比特精确地重置到基态,即 态。 由于量子纠缠的复杂性,对单个量子比特施加操作门(quantum gate)不仅会改变其自身的状态,还可能同时翻转其他与之纠缠的量子比特的状态。 系统的状态可以用一个 维的二进制向量 来描述,其中 。 表示第 个量子比特处于激发态 , 表示处于基态 。 我们有 种量子门操作,记为 。施加操作 的效果如下: 1. 必定会翻转第 个量子比特的状态,即 。 2. 由于纠缠效应,施加 还会翻转一系列其他量子比特 的状态。 每次操作都是一个翻转操作(异或 )。同一个操作施加两次会抵消其效果。我们的目标是找到一个操作序列,使得系统从初始状态 演化到全零向量 。 给定系统的初始状态和所有 种操作的纠缠影响关系,请找出一个解决方案。如果不存在任何解决方案,则输出 。若存在多种解决方案,您需要输出满足以下条件的最优解: 1. 施加的操作门数量最少。 2. 在数量最少的基础上,选择操作序列的字典序最小的方案(即操作的量子比特编号组成的序列)。
输入描述:
第一行包含两个整数 和 ,分别代表量子比特的数量和额外的纠缠关系数量。数据范围为 ,。第二行包含 个整数,表示初始状态向量 。第 个整数 代表第 个量子比特的初始状态。接下来的 行,每行包含两个整数 (),表示施加量子门 会额外翻转量子比特 的状态。
输出描述:
如果无解,输出一行 。如果有解,输出一行升序排列的整数,代表最优操作序列中需要施加的量子门的编号。整数之间用单个空格分隔。
示例1
输入
3 5
1 1 1
1 2
2 1
2 3
3 1
3 2
示例2
输入
4 6
1 0 0 0
1 4
2 1
2 4
3 1
4 2
4 3
备注:
本题由牛友@Charles 整理上传
加载中...