随笔分类 -  图论

摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5374思路:题目的意思是求树上的两点,使得树上其余的点到其中一个点的最长距离最小。可以想到这题与树直径有关,我们可以这样做,首先求出树的直径,然后取出树的中点以及与该中点... 阅读全文
posted @ 2014-10-17 19:14 ihge2k 阅读(148) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2489思路:由于N, M的范围比较少,直接枚举所有的可能情况,然后求MST判断即可。#include #include #include #include #include #include using ... 阅读全文
posted @ 2014-10-08 19:47 ihge2k 阅读(264) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4568思路:首先spfa预处理出每对宝藏之间的最短距离以及宝藏到边界的最短距离,然后dp[state][u]表示当前在点u,状态为state的最短距离,然后更新就行。#include #include #... 阅读全文
posted @ 2014-10-06 12:36 ihge2k 阅读(242) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4784思路:建图,对于同一个universe来说,就按题目给的条件相连,对于相邻的universe,连时间花费为1,费用为0的边,需要注意的是,对于起始点和终点只需在universe 0连边就可以了,对于... 阅读全文
posted @ 2014-10-05 20:41 ihge2k 阅读(224) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/164/A思路:用vector分别保留原图和发图,然后分别从val值为1的点正向遍历,va值为2的点反向遍历,如果某个点这两种方式都可以遍历到,则输出1,否则输出0.#include #include #in... 阅读全文
posted @ 2014-06-06 21:12 ihge2k 阅读(175) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/437/D思路:并差集应用,先对所有的边从大到小排序,然后枚举边的时候,如果某条边的两个顶点不在同一个集合中就合并,并且用一个sum记录这两个集合的大小,这样这两个集合中的每一对点都要经过这条边,然后更新一下... 阅读全文
posted @ 2014-06-05 22:24 ihge2k 阅读(264) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/118/E思路:首先要判断图是否是边双连通,这个Tarjan算法可以判断,若low[v] > dfn[u],则说明边(u,v)是桥,从而这个图不是边双连通,然后发现在判断的时候已经访问了所有的顶点,顺便加入就... 阅读全文
posted @ 2014-06-05 17:01 ihge2k 阅读(289) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/95/problem/C思路:首先dijkstra预处理出每个顶点到其他顶点的最短距离,然后如果该出租车到某个顶点的距离小于等于最短距离,就连边,费用为一开始出租车所需的费用,建好图之后再求一次最短路即可。#include #in... 阅读全文
posted @ 2014-06-04 21:07 ihge2k 阅读(175) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/20/C思路:需要用优化过的dijkstra,提供两种写法。#include #include #include #include #include #include #include #define REP... 阅读全文
posted @ 2014-06-04 16:47 ihge2k 阅读(275) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/208/problem/C思路:题目要求的是经过1~N的最短路上的某个点的路径数 / 最短路的条数的最大值。一开始我是用spfa得到从1开始的最短路和从N开始的最短路,然后分别从N开始记忆化搜索,得到从1到达最短路径上的u的路径条... 阅读全文
posted @ 2014-06-04 10:46 ihge2k 阅读(170) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/144/D思路:首先spfa求出中心点S到其余每个顶点的距离,统计各顶点到中心点的距离为L的点,然后就是要统计在边上的点了,可以枚举边(这里边的数量最多也就100000条),对于枚举的某条边,如果它的其中某个... 阅读全文
posted @ 2014-05-29 22:51 ihge2k 阅读(171) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/263/D思路:一遍dfs即可,dp[u]表示当前遍历到节点u的长度,对于节点u的邻接点v,如果v没有被访问过,则继续访问,否则计算dp[u] - dp[v] + 1是否大于等于K + 1,如果是,就说明找到... 阅读全文
posted @ 2014-05-29 10:42 ihge2k 阅读(383) 评论(0) 推荐(0)