摘要: 传递闭包裸题 但是本题的Floyd一定要优化,不然会T cpp include include include include include using namespace std; int init(){ int rv=0,fh=1; char c=getchar(); while(c'9'){ 阅读全文
posted @ 2018-01-15 18:42 Mr_Wolfram 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 传递闭包经典应用 奶牛的名次能确定当且仅当在它前面的牛数+在他后面的牛数==n 1 在他前面和后面的牛数可以转化成求完传递闭包后的出度和入度 cpp include include include include include using namespace std; int n,m,dis[10 阅读全文
posted @ 2018-01-15 17:14 Mr_Wolfram 阅读(152) 评论(0) 推荐(0) 编辑
摘要: DAG图上可相交最小路径覆盖 先求给定DAG的传递闭包,将任意相连的两点加入二分图中,然后就是经典的不相交最小路径覆盖 所谓传递闭包就是将DAG图中任意点间的连通关系处理出来,用Floyd即可 cpp include include include include include using nam 阅读全文
posted @ 2018-01-15 16:31 Mr_Wolfram 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 二分图求最大匹配 我们以每一个格子为边,以行和列为两个集合,那么求二分图的最大匹配数就是最多能放车的数目,那么什么是重要点呢?就是删掉后会影响最大匹配数的匹配边。 我们求出最大匹配数后,枚举匹配边,将其删掉后,从x集合的 每一个未匹配元素 出发,找增广路,如果找不到,就说明这是一个重要点。 注意:在 阅读全文
posted @ 2018-01-15 11:56 Mr_Wolfram 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 二分图行列匹配+输出路径 经典题,当且仅当一行匹配一列的时候,符合题意。 本题的难点在于如何输出路径,我们发现这个移动的过程就是将所有匹配选择排序,在选择排序时输出路径即可 cpp include include include include using namespace std; int in 阅读全文
posted @ 2018-01-15 11:02 Mr_Wolfram 阅读(132) 评论(0) 推荐(0) 编辑