二分图最大匹配,枚举. 可以计算出每一个位置可以放哪些数字,每个数字可以放在哪些位置,这样就可以建二分图了. 如果二分图最大匹配不到$n$,则无解.否则构造字典序最小的解,可以枚举每一位放什么数字,然后再判断是否有解. #include<bits/stdc++.h> using namespace std; +; int n,m1,m2; ],pR[],nL[],nR[]; ],cun[],u[][]; const int INF = 0x7FFFFFFF; struct Edge { int…