Description
给定
2N
个行向量
A1,…,AN,B1,…,BN
,需要设计一种替换方案,
Ai
被
Bj
替换
(i∈[1,N],j∈[N+1,2N])
,每个
j
只能用一次。要求是,每一个
Announcement
本人线性相关知识有限,本文仅作定性分析。
Analysis
后面提到的
A,B,C
将是
N×N
的矩阵,其中
A
是
S 集合
首先题目应该是要求了 A 必须是线性无关,不然就输出不合法(题意交代不清)。
然后对于每个
因为若有两个或以上的集合,不管是否有交集,
建图
我们将要求出对于每个
Bj
的相应集合
S
,然后显然
至于怎么求
C
呢,我们可以求出
字典序最小
建好图后,要使得字典序最小,我们先跑一次完美匹配,然后枚举每个 Ai ,强制其选 Bj ,即把两个点在匹配中禁止走,然后看原来选 Bj 的点能否跑出增广路。
时间复杂度
求逆矩阵是
N3
的,生成方案也是
N3
的。
所以本题是
O(N3)
。