推 vagrantlike: 兩位的討論已經超出小弟的理解範圍了=。= 07/23 22:43
→ vagrantlike: 所以網路流的max flow解法大致上思路是怎樣的呢? 07/23 22:45
以圖論/組合最佳化的觀點來看這題:
1. 這題是找 maximum cardinality matching。
(每個格子各是一個node。凡是遇到兩個相同又相鄰的數字,就連一條edge。)
2. 因為棋盤是 bipartite graph (想像西洋棋盤的黑白格子),
所以這題是找 maximum cardinality bipartite matching。
3. mcbm 的其中一種解法是 maximum flow:
bipartite graph 一邊的所有點各自接上 source,另一邊的所有點各自接上sink,
然後跑 maximum flow ,就得到 mcbm。
4. 同時棋盤也是 planar graph,同時棋盤的 maximum degree = 4。
所以極可能有更加奇葩的演算法。
如果你不懂圖論/組合最佳化,有兩種主要的應對方式:
1. 想辦法自學。(這個學校不會教)
2. 當作沒看到。(這題很可能只需要簡單的貪心法,不需要搞這麼複雜。)