【网络流24题】魔术球问题

【题目】#6003. 「网络流 24 题」魔术球

【算法】最小路径覆盖(详细知识参考网络流总结

【题解】(i+j)为完全平方数则连边,那么问题转化为添加尽可能多的点使得最小路径覆盖≤n(一条简单路径表示一根柱子)

从1开始枚举答案,每次可以直接在上一次的残余网络上建边增广(二分不优),直到最小路径覆盖>n时停止,i-1就是答案。

打印路径看哪些边满流,记录每个点的前驱,从没有前驱的点开始就可以找到整条路径。

AC代码在这里找:LibreOJ

posted @ 2017-04-16 21:46  ONION_CYC  阅读(849)  评论(0编辑  收藏  举报