随笔分类 -  图论

摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int n,m,ntime;//ntime记录dfs访问时间 8 int instack[11000];//标记点是否在栈中 9 int dfn[11000];//节点在dfs过程中的访问序号(也可以叫做开始时间) 10... 阅读全文
posted @ 2016-05-05 11:57 2014551532 阅读(168) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 vector > g; 7 int dfn[11000];//节点在dfs过程中的访问序号(也可以叫做开始时间) 8 int low[11000];//节点的子树中能够通过非父子边追溯到的最早的节点的dfs开始时间 9 int fa[1100... 阅读全文
posted @ 2016-05-04 21:08 2014551532 阅读(148) 评论(0) 推荐(0)
摘要:floyd最外层的k循环在循环到某个数ki时,前面以0到ki-1为中间结点的最短路径已经求出。 所有在内层的双循环之前再用一个双循环记录已找到的最小环的值即可。 要开两个数组存图,一个图就表示原图,不能改变值,另一个用来记录最短路。 阅读全文
posted @ 2016-04-18 13:44 2014551532 阅读(604) 评论(0) 推荐(0)
摘要:也没啥好讲的。字符串模拟出图后直接floyd,水题+1。 阅读全文
posted @ 2016-04-13 23:27 2014551532 阅读(183) 评论(0) 推荐(0)
摘要:没啥好讲的,直接构图就是。 阅读全文
posted @ 2016-04-12 18:25 2014551532 阅读(219) 评论(0) 推荐(0)
摘要:有一片100*100的湖泊,中心坐标(0,0),即湖泊右上角的坐标是(50,50),湖泊中间有一片以(0,0)为圆心,15为直径的圆形陆地。现有一个人在陆地,湖泊中散布着一些点可以踩,这个人要利用这些点跳到岸上,求最短路径和最短路径下的最短步数。 spfa莫名其妙的超时,dij+堆优化反而能过。。。 阅读全文
posted @ 2016-04-11 23:06 2014551532 阅读(473) 评论(0) 推荐(0)
摘要:n个人分成m组,求人数最多的那一组人数的最小值。 每个人肯定只能匹配一个组,但一个组可以匹配多个人,因此属于多重匹配。 我们设置一个limit,表示每组最多能容纳的人数。在dfs(u)寻找u的匹配时,如果某一组vv的人数小于limit,那么可以把u和vv匹配,vv已经匹配的人数+1。否则,当人数已经 阅读全文
posted @ 2016-04-09 21:59 2014551532 阅读(253) 评论(0) 推荐(0)
摘要:题意很简单,显然是对客人与伞做匹配,求最大匹配数。 一开始用了匈牙利,果断TLE。。。 好吧,原来二分匹配还有这个奇葩算法。。然而敲完还是不明白这个算法啥意思。。。 附两个算法的时间复杂度: 匈牙利:O(VE) H-K :O(V^0.5 E) 阅读全文
posted @ 2016-04-08 20:43 2014551532 阅读(180) 评论(0) 推荐(0)
摘要:有一个展厅,里面有一些文物和守卫,现在守卫不够,需要再雇佣一些守卫使所有文物被保护,且雇佣数量要最少,求这个数量。 文物被保护的定义:这个文物的所有必须被保护的点都要有守卫。 一个文物由一个2的12次方以内的数表示,那么这个数最多有12位,对应图中给出打的12个可能要被保护的点。 从末位(i=0 t 阅读全文
posted @ 2016-04-05 20:21 2014551532 阅读(170) 评论(0) 推荐(0)
摘要:n个点,m条边,边分为A,B两类,要构造一棵最小生成树,且树中A边数量为k。 我们可以通过给所有A边加上权值dx来控制树中A边的数量。显然,当dx增大,A边数量kk会减少。 二分dx, 当kk>=k,增大dx(即l=mid+1),同时更新ans=sum(mst)-mid*k; 当kk<k,减小dx( 阅读全文
posted @ 2016-04-03 15:41 2014551532 阅读(400) 评论(0) 推荐(0)
摘要:算和定根最小树形图相同。 我们只需:设一个权值sumw=所有边之和+1,类似于网络流,向图中加入一个超级源点,把这个点作为虚根。虚根到其他所有点之间连上一条边,边权值为sumw. 求出的值减去sumw即为最小树形图的权值。 当然,返回-1则无解。此外,当求出的值>=2*sumw,也是无解的。 阅读全文
posted @ 2016-04-02 22:05 2014551532 阅读(248) 评论(0) 推荐(0)
摘要:Description As you know, all the computers used for ACM contests must be identical, so the participants compete on equal terms. That is why all these 阅读全文
posted @ 2016-03-22 21:53 2014551532 阅读(447) 评论(0) 推荐(0)
摘要:DescriptionAfter a long lasting war on words, a war on arms finally breaks out between littleken’s and KnuthOcean’s kingdoms. A sudden and violent ass 阅读全文
posted @ 2016-03-21 21:27 2014551532 阅读(280) 评论(0) 推荐(0)
摘要:没看懂。。。留着慢慢研究。。。。 Description Input Output Sample Input Sample Output Source 黑书上的例题,所以题意就不啰嗦了,具体模型是求一个无向图的最小生成树,其中有一个点的度有限制(假设为 k)。 要求最小 k 度生成树,我们可以按照下 阅读全文
posted @ 2016-03-17 23:12 2014551532 阅读(400) 评论(0) 推荐(0)
摘要:题意:一个无向图,每条边有两个权值,h和l,要求一个生成树,使得所有边的h的和比上l的和最小。 设x[i]等于1或0, 表示边e[i]是否属于生成树. 则我们所求的比率 r = ∑(benifit[i] * x[i]) / ∑(cost[i] * x[i]), 0≤i<m . 为了使 r 最小, 设 阅读全文
posted @ 2016-03-16 22:09 2014551532 阅读(182) 评论(0) 推荐(0)
摘要:Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spanning Tree): Consider a connected, undir 阅读全文
posted @ 2016-03-10 21:44 2014551532 阅读(151) 评论(0) 推荐(0)
摘要:某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N 阅读全文
posted @ 2016-03-06 23:55 2014551532 阅读(173) 评论(0) 推荐(0)