摘要: 题目大意:有一些工作,每项工作有一个时间,有些工作要在一些其他工作完成的情况下才能做。如果两项工作没有冲突,即可同时进行。求完成工作的最短时间。 解题思路:DP。我们设f[i]为工作i的最短完成时间(包括完成准备工作的时间),则f[i]=max(f[i的准备工作])+工作i所花的时间。因为题目说,第 阅读全文
posted @ 2017-07-29 13:07 Mrsrz 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目:USACO Training 4.2(在官网上提交需加文件输入输出)、洛谷P1894。 题目大意:有n头奶牛m个牛栏,每头牛只会在自己喜欢的牛栏里产奶,问一次最多有多少奶牛能产奶。 解题思路:二分图匹配。这里我用了网络流,先建立超级源点和超级汇点,跑最大流即可。以下是Dinic算法的代码。 C 阅读全文
posted @ 2017-07-29 12:35 Mrsrz 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目大意:略。 解题思路:最大流木板题,以下是Dinic算法的代码。 C++ Code: 阅读全文
posted @ 2017-07-29 11:07 Mrsrz 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有一些点和一些边,每条边有一个监视代价。一个人从1号点出发,到达某些“传送点”可以逃生。但被监视的边就不能走了。要你用最小的监视代价使得那个人无法传送。 解题思路:求最小割。先建一个超级汇点$n+1$,把所有传送点连上这个超级汇点,然后根据“最小割=最大流”的定理,跑最大流即可。注意无向图 阅读全文
posted @ 2017-07-29 10:03 Mrsrz 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 题目:洛谷P2756。 题目大意:有m个外籍飞行员和n个英国飞行员,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。现在一架飞机要一名外籍飞行员和一名英国飞行员开,且他们必须有默契,求一次最多能开出多少飞机。 解题思路:明显二分图匹配,我用的匈牙利算法(当然网络流也可以,只不过代码量会大一点 阅读全文
posted @ 2017-07-28 20:23 Mrsrz 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目:USACO Training 4.1(在官网上提交需加文件输入输出)、洛谷P2738。 题目大意:给你一张图里的边集,让你求出这张图的最小环。 解题思路:求最小环很简单,用Floyd即可。最重要的是,该题给你的是边集而不是点集,所以构图是关键。 我是这么构图的:设当前边的编号为$x$,我们先把 阅读全文
posted @ 2017-07-28 19:55 Mrsrz 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 题目:USACO Training 4.2(在官网上提交需加文件输入输出)、洛谷P2740、codevs1993、POJ1273(多数据读入)、HDU1532(多数据读入)。 题目大意:有n条有向边连接着m个点,每条边有一个最大容量,求从1到n最多流多少水。 解题思路:最大流模板题,我A的第一道网络 阅读全文
posted @ 2017-07-28 15:31 Mrsrz 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 题目:洛谷P1525、Vijos P1776、codevs1069。 题目大意:有一些罪犯,两个罪犯之间可能会发生冲突,冲突有个影响力,而如果两个罪犯在不同监狱里,就可以避免冲突。现在有两个监狱,要你安排一种关押罪犯的方式,使得影响力最大的一次冲突影响力最小。 解题思路:贪心+并查集。先将所有冲突按 阅读全文
posted @ 2017-07-28 12:55 Mrsrz 阅读(464) 评论(0) 推荐(1) 编辑
摘要: 题目大意:很多人@一个人,如果那个人忍不住说话了,就轰炸成功,如果那个人没说话或者别的人没有@他或@很多个人,则轰炸失败。(具体见原题) 解题思路:字符串处理,好好用sscanf即可(细节见代码)。 C++ Code: 阅读全文
posted @ 2017-07-28 09:02 Mrsrz 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求1到其他所有点的最短路径的条数。 解题思路:SPFA(我觉得更像BFS),因为边权为1,所以最先搜到的那次一定是最短路径,在答案中增加父节点的答案数。以后每次搜到最短路径相同时,再在答案中添加当前父节点的答案数。(具体见代码) C++ Code: 阅读全文
posted @ 2017-07-27 20:34 Mrsrz 阅读(506) 评论(0) 推荐(0) 编辑