自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AC_Arthur的专栏

Always challenge miracles!

原创 HDU 5119 Happy Matt Friends(DP)

求解方案数的简单DP,比赛时没有往DP上想,思维比较局限。 状态转移很好写,类似于背包,我用记忆化搜索写的容易写,但是效率比较低,还占内存,读者可以改成递推式,还可以改成滚动数组,因为每一层的状态只用到它上一层的状态 。 细节参见代码: #include #include #include ...

2015-08-31 21:36:43

阅读数 759

评论数 0

原创 HDU 1565 方格取数(1)(最大独立点权覆盖 | 最小割)

该题是一道经典的求最大点权独立集问题的题目 。  关于定义我就不多说了 。 说一下几个重要的关系 : 1.最大流 = 最小割 = 最小点权覆盖集 = sum - 最大点权独立集 。 因此,该题其实还可以用最小割来做,思想是相同的 。  因为我们不能取相邻的数字,所以很容易联想到最小割  。 那么我...

2015-08-31 10:24:35

阅读数 874

评论数 1

原创 HDU 3572 Task Schedule(最大流Dinic算法)

该题非常经典,建图的方法非常巧妙,因为每个任务的完成不一定要连续,而且可以换机器完成,而且我们注意到时间点最多500,很小,所以我们将时间点抽出来建图。 对于每个任务,将其时间范围内的点与之连起来,容量显然为1 ,并与汇点相连,容量为p[i] 。  对于每个时间点,因为最多可以有m台机器同时工作,...

2015-08-30 20:54:06

阅读数 1170

评论数 0

原创 HDU 2732 Leapin' Lizards(拆点法+最大流)

该题是一道比较简单拆点+最大流的题目,因为每个柱子都有一定的寿命,很容易将其对应成流量,那么处理结点容量的一般方法当然是拆点法 。该题反而对边的容量没有要求,为保险起见可以设成无穷大。   该题的思路很好想,建议独立编写代码 。 推荐题目: 点击打开链接    结点法的一些见解 也可以看这里。 ...

2015-08-30 17:13:39

阅读数 1100

评论数 0

原创 HDU 1165 Eddy's research II(递推)

坑了我好久,乍看很简单,记忆化搜索结果爆栈,然后改成递推之后WA 。 后来发现,是在计算m=3的数据时出现了错误,因为当m=3时,即使n很小,结果也会很大,所以无法利用m=2时的结果递推,要怎么办呢?  将m=2的结果打印出来可以发现这是一个等差数列,通项为S(n) = 2*n + 3; 这有什...

2015-08-30 10:52:38

阅读数 748

评论数 0

原创 HDU 1978 How many ways (DP)

一个比较简单的DP,希望读者在看题解之前

2015-08-30 09:02:57

阅读数 884

评论数 0

原创 HDU 2851 Lode Runner(简单DP)

比较简单的一道DP题,题意是给你n条路,每条路的最右边有一个梯子,也就是说只要一条路的最右边在另一条路上,那么就可以从这条路去那条路。 一开始没考虑清楚状态怎么表示,TLE了一次。 因为路的最右边从小到大排序,且不能向回走,所以用d[i]表示到大i点的最优解,那么当前这个状态只能由该点之前的某条路...

2015-08-29 09:24:14

阅读数 1133

评论数 0

原创 12549 - Sentry Robots (二分图匹配)

该题和HDU 5093 如出一辙 传送门  。即求解二分图最大匹配数 = 最小点集覆盖 。 该题要求用尽量少的机器人看守所有重要的点,并且障碍物会阻隔机器人的看守范围  。 我们不妨将行列分开,按照行和列的最大看守范围编号,这样得到的就是最大匹配数 。 由于要求看守所有重要的点,所以这样可以有效...

2015-08-27 09:23:08

阅读数 1153

评论数 0

原创 HDU 5093 Battle ships(二分图匹配)

该题是一道经典的二分图匹配题目 。  同一列(行)上不能放两个船除非有冰山隔着。对于这种二维平面图,我们很容易想到将行和列分成两个集合,进行二分图匹配,当一个行坐标匹配到一个列坐标时,该格子可以放置船。那么为了使任意两个船都不在同一行或者同一列,除非有冰山,我们可以将每一行中一块连续的只能放置一个...

2015-08-27 08:44:27

阅读数 1420

评论数 0

原创 HDU 4687 Boke and Tsukkomi(一般图匹配|带花树)

比赛的时候刚开始看这题还以为是二分图匹配,后来才发现根本不是,因为该题存在长度为奇数的圈 。  比如1->2,2->3,3->1 。 所以该题要用一般图匹配,即带花树算法 。 比赛时抄的模板有地方抄错了,上述样例出现了死循环 。   赛后补题的时候用map去重却得不到正确答案,...

2015-08-26 20:52:46

阅读数 877

评论数 0

原创 HDU 4268 Alice and Bob(贪心+STL)

该题一开始我用multiset写了一发,写的比较裸,TLE了 。 后来队友想到了一个比较好的方法 :将两个结构体排序之后,从大到小枚举Alice的h,对于每个h,将Bob中满足h小于当前h的牌的w加进multiset,然后用二分函数查找一下大于等于当前w的第一个数,当前迭代器的上一个指针就是小于当...

2015-08-25 19:42:36

阅读数 772

评论数 1

原创 10288 - Coupons (数学期望)

没什么好说的了,看代码吧: #include using namespace std; typedef unsigned long long ll; int n,m; ll gcd(ll a,ll b) { return b == 0 ? a : gcd(b,a%b); } int ga...

2015-08-25 09:58:04

阅读数 706

评论数 0

原创 HDU 4786 Fibonacci Tree(最小生成树)

该题其实就是最小生成树的变形,先求一个最小生成树的权值,再求一个最大生成树的权值,显然在这两个权值之间的所有值都可以取到(你总可以拿一条黑边换成一条白边)。那么我们只要看一下这些值中有没有斐波那契数就行了。小于100000的斐波那契数只有几十个,直接枚举就行了 。  细节参见代码: #incl...

2015-08-25 09:23:43

阅读数 855

评论数 0

原创 UVA 1664 - Conquer a New Region(并查集)

该题巧妙的运用了并查集,运用了类似于最小生成树算法的过程 ,通过该题可以对并查集有一个更深的理解 。  由于i和j唯一通路上容量的最小值为该两点的容量,求一个点到其他所有点的容量最大值 。 首先,解决两点的容量问题 ,我们将所有边从大到小排序,然后从大到小枚举,我们假设根结点就是要找的城市中心...

2015-08-24 21:13:21

阅读数 1258

评论数 0

原创 1660 - Cable TV Network(最大流最小割)

该题又是一道经典的最小割问题,不过不是割边而是割点 。问题是:最少删除几个点可以让图不连通 。 我们都知道最大流对应着最小割,所以重点在于建模 。 为了形成割,那么必须让点具有“流量”的性质,怎么做呢? 对,拆点 。 和例题1658类似的方法,我们将每个点拆成两个点,连一条容量为1的边,那么每个...

2015-08-24 10:31:19

阅读数 1307

评论数 0

原创 UVA 10801 - Lift Hopping (Dijkstra算法/最短路)

比较简单的最短路问题,唯一的不同是更换电梯的时候需要多加60s等待时间,而且第一次上电梯不需要等待60s 。注意到这些细节之后在结构体中多保存一个电梯的id,这样在松弛操作的时候分情况讨论一下就行了 。 细节参见代码: #include using namespace std; const dou...

2015-08-23 21:38:04

阅读数 769

评论数 0

原创 820 - Internet Bandwidth(最大流模板题)

最大流裸题,紫书上的图有问题,差点坑到我。。 给出Dinic算法模板,比较高效的最大流算法,复杂度为O(v^2*E),而实际上Dinic算法比这个理论界要好得多。 紫书上的Edmonds-Karp算法的复杂度是O(v*E^2),对于边较多的题目来说显然不够高效。 细节参见代码: #inclu...

2015-08-23 19:57:14

阅读数 900

评论数 0

原创 1515 - Pool construction(最大流最小割模型)

该题是一道经典的最小割题目 。  最近学习图论以来一直不是很明白最小割是什么,通过该题,有了一定的认识 。 首先我们要知道最大流最小割定理 :对于任意一个只有一个源和一个汇的图来说,从源到汇的最大流等于最小割 。 也就是说,对于一个图中的两个集合AB,通过删除一些边让他们恰好不连通,那么删掉的...

2015-08-23 17:10:08

阅读数 1173

评论数 0

原创 12661 - Funny Car Racing (最短路)

一道比较基础的最短路问题,和普通最短路的不同之处在于每条道路会开启a时间,关闭b时间的循环  。那么只需要在dijkstra算法中利用d[u]稍微改动一下就行了 。 两种情况:1 可以直接通过该条道路 。 2 需要等一会才能通过 。  当然还有可能无论如何都不能通过 。  细节参见代码: #...

2015-08-23 09:21:55

阅读数 1659

评论数 1

原创 1349 - Optimal Bus Route Design(二分图最小权完美匹配)

该题是一道典型的二分图最小权完美匹配问题 。每个点恰好属于一个有向圈,意味着每个点都有一个唯一的后继 。某个东西恰好有唯一的.....这便是二分图匹配的特点 。 将每个结点拆成Xi和Yi,则原图中的有向边u->v对应二分图中的边Xu->Yv 。当流量满载时存在,存在完美匹配,否则不存...

2015-08-22 21:42:40

阅读数 1332

评论数 0

提示
确定要删除当前文章?
取消 删除