給定2n
個行向量a1
,…,a
n,b1
,…,b
n ,需要設計一種替換方案,ai
被bj 替換(i
∈[1,
n],j
∈[n+
1,2n
]),每個
j 只能用一次。要求是,每乙個ai
被對應的bj
替換後,ak
(1≤k
≤n) 間線性無關。並要求方案的字典序最小。
後面提到的a,
b,c 將是n×
n 的矩陣,其中
a 是n個
ai,b
也同理。
首先題目應該是要求了
a 必須是線性無關,不然就輸出不合法(題意交代不清)。
然後對於每個bj
,a中只能有乙個最小集合
s,滿足
s 線性無關,但加入bj
後s將線性相關。
因為若有兩個或以上的集合,不管是否有交集,
a將不會線性無關。
我們將要求出對於每個bj
的相應集合
s ,然後顯然bj
能替換的只能是
s 中的某個ai
。設c×a
=b,則若ct
i,j≠
0 ,則bj
的s中含ai
,道理是因為∑c
i,j×
aj,k
=bi,
k ,而aj
,k,b
i,k 都是行向量。
至於怎麼求
c 呢,我們可以求出
a的逆矩陣a−
1 ,則有c=
b×a−
1 。
建好圖後,要使得字典序最小,我們先跑一次完美匹配,然後列舉每個ai
,強制其選bj
,即把兩個點在匹配中禁止走,然後看原來選bj
的點能否跑出增廣路。
求逆矩陣是n3
的,生成方案也是n3
的。 所以本題是o(
n3) 。
HEOI2013 SAO 計數問題
題目大意 welcome to sao strange and abnormal online 這是乙個 vr mmorpg,含有 n 個關卡。但是,挑戰不同關卡的順序是乙個很大的問題。有 n 1 個對於挑戰關卡的限制,諸如第 i 個關卡必須在第 j 個關卡前挑戰,或者完成了第 k 個關卡才能挑戰第...
P4096 HEOI2013 Eden的博弈樹
乙個博弈樹,黑方先手。定義乙個最小的葉子節點集為黑胜狀態為黑方勝利集合,白色亦然。求所有既屬於黑方勝利集合有屬於白方勝利集合的點。設f i,0 1f fi,0 1 表示i ii子樹中的最小黑髮 白方勝利集和,然後可以根據這個求出所有的勝利集合點。時間複雜度o n o n o n include in...
HEOI2013 Eden 的新揹包問題
題面 原題過於繁複,這裡口述,多重揹包,多次詢問,每次詢問的揹包容量不一樣,並且每次詢問會規定乙個物品不能選 這個規定的物品每次詢問都會改變 題解首先考慮對詢問的兩個要求,容量不一樣很好處理,因為dp跑揹包的過程中本來就會記錄不同容量時的答案。對於規定乙個物品不能選怎麼處理呢?不計算這乙個物品,需要...