1. 程式人生 > >【BZOJ 4057 Kingdoms】

【BZOJ 4057 Kingdoms】

amp esc 隨著 狀態 整數 mit script des scrip

Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 450 Solved: 187
[
Submit][Status][Discuss]

Description

有一些王國陷入了一系列的經濟危機。在很多年以前,他們私底下互相借了許多錢。現在,隨著他們的負債被揭發,王國的崩潰不可避免地發生了……現在有n個王國,對於每對王國A和B,A欠B的錢被記為d_AB(我們假設有d_BA=-d_AB成立)。如果一個王國入不敷出(即需要支付超過所能獲得的錢),它就可能破產。每當一個王國破產,與它相關的所有債務關系都會被去除,無論是正是負。而王國們的破產不是一瞬間完成的,而是第一個王國破產後,接下來可能破產的王國再繼續破產,直到剩下的王國經濟都是穩定的。不同的結局將取決於誰先破產,尤其是有的結局只會留下一個王國。請你計算,對於每個王國,是否存在一種結局使得該王國是唯一的幸存者。

Input

第一行一個正整數T,表示有T組數據。

每組數據第一行一個正整數n,表示有n個王國,1 <= n <= 20。

接下來n行,每行n個整數,第i行第j個整數表示d_ij,保證有d_ii = 0, d_ij = -d_ji, |d_ij| <= 10^6。

Output

每組數據輸出一行,按照升序輸出所有可能的王國編號,空格隔開,如果沒有一個王國能滿足條件,輸出一個0。

Sample Input

1
3
0 -3 1
3 0 -2
-1 2 0

Sample Output

1 3

HINT

Source

鳴謝Tjz

題解:
①n很小,考慮狀態壓縮。

②用01表示是否破產,然後狀態轉移為:狀態為布爾量轉移。
f[i^(1<<(j-1))]=f[i] 表示讓j破產。

不因一場宿命而忘卻初衷

不因一世坎坷而殘喘茍活。————汪峰《流年啊 你奈我何

【BZOJ 4057 Kingdoms】