uva11383 少林決勝 KM演算法

2021-09-29 00:01:16 字數 703 閱讀 4085

題解:比較經典的做法,題目給的不等式row[i] + col[j] >= w[i][j]和二分圖最佳完美匹配的很像,可以聯想到km演算法, 把橫縱座標分別看作二分圖的頂點,每個w(i,j)看作邊權值,跑一遍匈牙利演算法即可。

(km演算法的過程實際是最大化邊權和,最小化頂標和的過程

證明是最小化訂標只需在最佳完美匹配的狀態時,假設減少某點的訂標引入新邊,那麼原來與此點連線的另外一點的訂標也要增加那麼多,那訂標和就減不少

#include #include #include using namespace std;

const int maxn = 510;

int n;

int w[maxn][maxn];

int lx[maxn],ly[maxn],s[maxn],t[maxn];

int lefts[maxn],rights[maxn];

bool dfs(int u)

}return false;

}void up()

for(int i = 1;i <= n;i++)

}void km()

}for(int i = 1;i <= n;i++) }}

int main()

return 0;

}

題目1138 進製轉換

題目描述 將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。輸入 多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 輸出 每行輸出對應的二進位制數。樣例輸入 013 8 樣例輸出 0111 1000 include ...

1138 破解簡單密碼

1138 破解簡單密碼 description 密碼是我們生活中非常重要的東西,我們的那麼一點不能說的秘密就全靠它了。哇哈哈。接下來原子要在密碼上再加一套密碼,雖然簡單但也安全。假設老王原來乙個bbs上的密碼為zvbo941987,為了方便記憶,他通過一種演算法把這個密碼變換成yuanzi1987,...

Sicily 1138 尋寶之旅

time limit 10 secs,memory limit 32 mb 探險隊長凱因意外的弄到了乙份黑暗森林的藏寶圖,於是,探險隊一行人便踏上了尋寶之旅,去尋找傳說中的寶藏。藏寶點分布在黑暗森林的各處,每個點有乙個值,表示藏寶的價值。它們之間由一些小路相連,小路不會形成環,即兩個藏寶點之間有且僅...