Sample Input
2
3 1
4 3
Sample Output
Impossible
2 1 4 3
3 4 1 2
4 3 2 1
题意:
T 组测试用例
n个骑士 进行k轮决斗
每轮两个骑士为一组 下一轮更换对手 但上一轮一组的两人的对手上一轮也必须为一组
如:第一轮a-b、c-d, 第二轮 a-c 则b的对手为c上一轮的对手d(a对手的上一个对手)
输出k行决斗的赛表 每行n个数字 第i个数代表i的对手 (按字典序升序输出)
如:2 1 4 3 ,1号骑士对手为2号
若无法安排 输出Impossible
思路:
用异或的性质 0 1 2 3 分别异或 0 1 2 3得 0 1 2 3的四组不同排列(具体原理我也母鸡→_→)
n个人最多可分配轮数k=n&(-n),即n的含2的因子 4=>4 6=>2 8=>8
因为每轮交换对手以两组为单位
#include