题目链接:
思路:最小路径覆盖,如果满足条件:wi < wj , li < lj , and hi < hj,那么i->j连边,然后就是求最大匹配。
最小路径覆盖=顶点数-最大匹配。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 struct Node{ 7 int wi,hi,li; 8 }node[555]; 9 bool map[555][555];10 bool mark[555];11 int ly[555];12 int n;13 14 int cmp(const Node &p,const Node &q){15 if(p.wi!=q.wi)return p.wi