摘要:
题解链接:http://page.renren.com/601081183/note/866168965题号:hdu 4370~4379 这次组队赛还是没有什么进步,我依然是我们队的代码主力,不过整场下来才过了两题。 这次比赛开始又是延迟了,因为开门的师兄到点了还没到机房。 最近比赛都是由我的队友看题,而我就只是在一旁等他们讲解题意,顺便吃个午饭。在我吃饭的过程中想了一下1001,当时没有什么思路,然后yy着突然想到什么东西了,就尝试着把它分解成几种情况来讨论。当时的几种情况其中一种还用到二分匹配最优解....- - 不过,当我仔细看清题目之后就推翻了自己写的那几种情况了,然后迫于无奈... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1006 题意不多说,这题是求一个概率。刚开始的时候我并没有思路,想了颇久,最后还是打算看看题解。网上的题解不好理解,但是当我看到一个找三种针之间速度的差距就可以计算出来,我就突然灵机一动,想到了先计算出两种针间每秒的变化速度,然后就像小学的追逐问题一样,计算出时间。一天是24小时,但是我们只需要计算前12个小时就可以了。 然后,将计算出的时间储存起来,变成区间,最后就把问题转变为区间取交的问题了! 运行的时间不会太长,15ms,跟网上某些说跟精度有关的算法不一样,我的是直接计算,所以精度不会影响结果!代... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1045 这题题意是找到尽可能多的点,使它们相互之间都不在同一条无阻隔的水平或竖直线上。 如果将可操作点作为集合,那么这题就是一道最大独立集的问题,所以可以直接套最大匹配的算法。当然,这题根据也可以将图取反,然后求最大团。列举一些性质:最大独立集 + 最小覆盖集 = V最大团 = 补图的最大独立集最小覆盖集 = 最大匹配下面的是用最大匹配hk算法来做的:View Code 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cs 阅读全文
摘要:
题解链接:http://page.renren.com/601081183/note/865867924hdu题号:4360~4369 今天状态不太好。中午,我带着疲惫的身躯去到机房,但是开门的人迟迟没来,对于我们的比赛开始时间也就延迟了几分钟。今天也是很久都没有队伍带榜,不过我一打开题目就看懂了两个,一个是1006,另外的是1001。 比赛刚开始的时候,我1001还没更新题意,所以没敢试这题,不过初步可以知道是最短路。然后,我观察了一下1006的输入输出,我很快就发现这个对称图形只需统计其中一部份的可操作点的个数,然后快速幂一下,答案就出来了。我第一遍打出来的程序出现了一个问题,就是点的.. 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2444 一道二分匹配的题,不过要在匹配前判断是否能形成二分图!这是我baidu二分匹配找到的题,我当时看到要判断是否为二分图就感到有点蒙了,因为看完数据结构太久了,忘记了二分图有什么特性了。当时我还打算按进去看代码,结果一按进去就发现bfs和dfs。刚切完一道hk算法的我头昏脑胀的,果断关了网页。 在回宿舍的路上,我首先从bfs想到了可以判断是否有奇环。不过我想了好几个bfs的方法,都觉得复杂度挺大的,然后就直接抛弃了这个想法,另辟蹊径 !然后,我就发现,这些点和点间的关系有点像以前做过的一道并查集的题(.. 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2389 Hopcroft-Karp算法是二分匹配的一个十分快捷的算法,相对于匈牙利算法在时间上有了相当大的改进! hdu 2389 这题我是前两天尝试做二分匹配的题的时候遇见的,当时我看到点的规模达到3000个,我就想到这题不能用匈牙利算法来过。不过当时我还不会hk算法,所以我只好当作练习匈牙利算法,打了一遍交上去!回来的结果必然是TLE。然后,我只好看了一下题解,才发现hk算法这神级速度的二分匹配算法! 我想说一下的是,在图论的算法中,用的最多的优化方式就是将dfs转化成bfs,用队列,优先队列,亦或... 阅读全文
摘要:
Hopcroft-Karp算法是Hopcroft和Karp在1972年提出的,该算法的主要思想是在每次增广的时候不是找一条增广路而是同时找几条不相交的最短增广路,形成极大增广路集,随后可以沿着这几条增广路同时进行增广。可以证明在寻找增广路集的每一个阶段所寻找到的最短增广路都具有相等的长度,并且随着算法的进行最短增广路的长度是越来越长的,更进一步的分析可以证明最多只需要增广ceil(sqrt(n))次就可以得到最大匹配(证明在这里略去)。因此现在的主要难度就是在O(e)的时间复杂度内找到极大最短增广路集,思路并不复杂,首先从所有X的未盖点进行BFS,BFS之后对每个X节点和Y节点维护距离标号.. 阅读全文
摘要:
A题:http://acm.timus.ru/problem.aspx?space=1&num=1830题目来源:URAL 1830~1840 这次组队赛我们队每个人都状态不好,刚来到就发现A题是跟之前个人赛题意一样的题目,不过当时赛后没有看怎么做。这题如果知道原理,也就是格雷码,那么这题就可以瞬间秒杀的。不过我的队友是这样推的,把它当作dp来做,划分小问题,然后累加求解。 这个解法在开始后整整两个钟才整理好思路,这个过程中,我切了一道相对比较水的bfs(H题),不过因为判断少了一个条件,sample都没对。不过,刚打完的时候,因为只错了一个数字,所以没发现,直接交了上去,WA了。然后 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2063View Code 1 #include <cstdio> 2 #include <vector> 3 #include <cstring> 4 5 using namespace std; 6 7 const int maxn = 501; 8 vector<int> p[maxn]; 9 int mat[maxn];10 bool vis[maxn];11 12 bool dfs(int v){13 for (int i = 0; i < p[v 阅读全文
摘要:
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4009 再来最小树形图的题,拿来练习打最小树形图的朱刘算法..... 这题看懂了以后想不到办法解决,于是就喵了喵别人的代码,才发现原来不仅网络流的构图要技巧,最小树形图的、解决也需要技巧的。这让我大开眼界了! 这题的构图跟不定根的构图差不多,不过这里可以有多个根,也就是要求有向图的最小生成森林了。看上去还有点像网络流,不过好像不能用网络流来解决。 看懂了构图以后,就唯有将这题当作是练手了,剩下的就是体力活儿了.....最小树形图的代码挺多陷阱的,尤其要注意寻找环那部分的代码,因为那里比较容易打错... 阅读全文