def METHOD_NAME(num_qubits, alice_basis, bob_basis, alice_state):
    qubits = cirq.LineQubit.range(num_qubits)
    circuit = cirq.Circuit()
    # Alice prepares her qubits
    alice_enc = []
    for index, _ in enumerate(alice_basis):
        if alice_state[index] == 1:
            alice_enc.append(cirq.X(qubits[index]))
        if alice_basis[index] == 1:
            alice_enc.append(cirq.H(qubits[index]))
    circuit.append(alice_enc)
    # Bob measures the received qubits
    bob_basis_choice = []
    for index, _ in enumerate(bob_basis):
        if bob_basis[index] == 1:
            bob_basis_choice.append(cirq.H(qubits[index]))
    circuit.append(bob_basis_choice)
    circuit.append(cirq.measure_each(*qubits))
    return circuit