Dolls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 869 Accepted Submission(s): 403 Problem Description Do you remember the box of Matryoshka dolls last week? Adam just got another box of dolls…
先找出强连通分量缩点,然后就是最小路径覆盖. 构造一个二分图,把每个点\(i\)拆成两个点\(X_i,Y_i\). 对于原图中的边\(u \to v\),在二分图添加一条边\(X_u \to Y_v\). 最小路径覆盖 = 顶点个数 - 最大匹配数 #include <cstdio> #include <cstring> #include <algorithm> #include <stack> using namespace std; const int…
http://acm.hdu.edu.cn/showproblem.php?pid=1151 Air Raid Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7469   Accepted: 4451 Description Consider a town where all the streets are one-way and each street leads from one intersection to an…
<题目链接> 题目大意: 一个有向图,让你按规则划分区域,要求划分的区域数最少. 规则如下:1.所有点只能属于一块区域:2,如果两点相互可达,则这两点必然要属于同一区域:3,区域内任意两点至少有一方能够到达另一方. 解题分析: 双连通的两点必须要属于一块区域,所以可以直接对相互连通的点进行缩点,然后再分析缩点后的图像,因为题目要求划分的区域最少,且区域内的"点"之间至少有一方能够到达另一方.仔细思考后,发现就是对缩点后的图求最小路径覆盖.区域内的"点"至…
http://poj.org/problem?id=3020 Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7565   Accepted: 3758 Description The Global Aerial Research Centre has been allotted the task of building the fifth generation of mobile ph…
( ̄▽ ̄)" //无向二分图的最小路径覆盖数=顶点总数-最大匹配数/2(最大匹配数=最小点覆盖数) //这里最大匹配数需要除以2,因为每两个相邻的*连一条边,即<u,v>和<v,u>是一样的,所以结果多了一倍 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namesp…
题链: http://hihocoder.com/problemset/problem/1394 题解: 有向图最小路径覆盖:最少的路径条数不重不漏的覆盖所有点. 注意到在任意一个最小路径覆盖的方案下,每条路径的起点的入度为 0,终点的出度为 0,而中间的点的入度和出度以及起点的出度和终点的入度都为 1那么把每个点拆为两个: u 和 u',分别代表其 出点 和 入点然后对于 边 u->v, 在 u 和 v' 之间建立双向边.那么形成二分图. 二分图匹配后,某条匹配边上的起点的出度 +1,终点的入…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3861 最小路径覆盖的一篇博客:https://blog.csdn.net/qq_39627843/article/details/82012572 题意: 把城市至少分成几个块,规则有三 1. A能B,B能到A,那么A,B一定要在一起. 2. 一个城市只能属于一个块. (说明了是最小不相交覆盖)3. 在一个块里的城市,任意2点之间必须有路径. 对于规则1,就是说强连通的必须在一起,所以用Tarjan…
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1151 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82834#problem/J /* ************************************************************************** //二分图匹配(匈牙利算法的DFS实现) //初始化:G[][]两边顶点的划分情况 //建立G[i][…
http://acm.hdu.edu.cn/showproblem.php?pid=3861 题意: 国王要对n个城市进行规划,将这些城市分成若干个城市,强连通的城市必须处于一个州,另外一个州内的任意两个城市u,v,有从u到v的路径或从v到u的路径.求最少可以分成几个州. 思路: 这道题目挺好. 首先,强连通分量进行缩点,重新建图. 新建的图就是一个DAG图,接下来就转换成了最小路径覆盖问题. 最小路径覆盖就是用尽量少的不相交的简单路径覆盖DAG的所有顶点.每个顶点只属于一条路径,单个顶点也可以…