随笔分类 -  图论

摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=562 题意: 求给每个节点的度数允许的最大值,让你求k个节点能组成的不同的生成树个数。 题解: 对于n个节点形成的一颗生成树,有一个与之唯一对应的大小为n-2的prufer数列。 并且一个节点的度数减一 阅读全文
posted @ 2016-06-01 23:24 fenicnn 阅读(351) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4031 题解: Matrix-tree定理解决生成树计数问题,其中用到高斯消元法求上三角矩阵,其中消元用的是辗转相除法。 代码: 阅读全文
posted @ 2016-06-01 18:53 fenicnn 阅读(240) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/problemset/problem/173/B 题意: 给你一个n*m的地图,现在有一束激光从左上角往左边射出,每遇到‘#’,你可以选择光线往四个方向射出,或者什么都不做,问最少需要多少个‘#’往四个方向射出才能使关系在n行往右边射出。 题解 阅读全文
posted @ 2016-06-01 13:21 fenicnn 阅读(506) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1083 代码: 阅读全文
posted @ 2016-05-31 11:43 fenicnn 阅读(215) 评论(0) 推荐(0)
摘要:题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 题解: 先求最小生成树,记录最大边。 然后求最大生成树,保证所有边小于等于最小生成树的最大边。 阅读全文
posted @ 2016-05-30 14:15 fenicnn 阅读(175) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5637 题意: http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=675&pid=1003 题解: 令n=(1<<1 阅读全文
posted @ 2016-05-30 13:12 fenicnn 阅读(203) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5638 题意: 给你一个DAG图,删除k条边,使得能个得到字典序尽可能小的拓扑排序 题解: 把拓扑排序的算法稍微改一下,如果某个顶点的入度小于k也把它加到优先队列里面去。 k减小后队列里面会有些点不满足 阅读全文
posted @ 2016-05-29 21:18 fenicnn 阅读(248) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5294 题意: 给你个无向图: 1、求最少删除几条边就能破坏节点1到节点n的最短路径, 2、最多能删除多少条边同时保证1到n的最短距离不变。 题解: 首先用spfa或dijcstra跑出所有最短路组成的 阅读全文
posted @ 2016-05-29 18:59 fenicnn 阅读(161) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5293 题意: 给你一些链,每条链都有自己的价值,求不相交不重合的链能够组成的最大价值。 题解: 树形dp, 对于每条链u,v,w,我们只在lca(u,v)的顶点上处理它 让dp[i]表示以i为根的子树 阅读全文
posted @ 2016-05-29 15:44 fenicnn 阅读(788) 评论(0) 推荐(0)
摘要:题目链接: http://www.codeforces.com/contest/655/problem/D 题意: 题目是要求前k个场次就能确定唯一的拓扑序,求满足条件的最小k。 题解: 二分k的取值,做拓扑排序的时候只要每次只有一个元素没有前驱就可以唯一了。 阅读全文
posted @ 2016-05-28 15:42 fenicnn 阅读(135) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4500 题解: 从行向列建边,代表一个格子a[i][j],对每个顶点的所有操作可以合并在一起用sum[xi]表示, 那么题目相当于是要求sum[xi]+sum[xj]==a[xi][xj]; 阅读全文
posted @ 2016-05-28 00:37 fenicnn 阅读(195) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34651 题意: 给定一个有向图,每一条边都有一个权值,每次你可以选择一个节点v和一个整数d,把所有以v结尾的边权值减小d,把所有以v为起点的边的权值增加d,最后要让 阅读全文
posted @ 2016-05-26 20:25 fenicnn 阅读(175) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4443 题解: 二分答案,判断最大匹配是否>=n-k+1; 阅读全文
posted @ 2016-05-24 15:42 fenicnn 阅读(176) 评论(0) 推荐(0)
摘要:题目链接: http://www.codeforces.com/contest/666/problem/B 题意: 给你n个城市,m条单向边,求通过最短路径访问四个不同的点能获得的最大距离,答案输出一个满足条件的四个点。 题解: 首先预处理出任意两点的最短距离,用队列优化的spfa跑:O(n*n*l 阅读全文
posted @ 2016-05-23 00:07 fenicnn 阅读(185) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5695 题解: 求出字典序最大的拓扑序。然后把求好的数列翻转过来就是满足条件的数列,然后模拟求一下value就可以了。 阅读全文
posted @ 2016-05-22 19:42 fenicnn 阅读(136) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4554 题解: 如果没有硬石头的话,就是’*‘点对应的行列建边,然后跑最大匹配 硬石头什么作用?它可以让同一行或同一列存在不只一个炸弹,因此我们可以将一个硬石头的上下拆成两列,左右拆成两行, 阅读全文
posted @ 2016-05-20 23:50 fenicnn 阅读(232) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4685 题解: 这一题是poj 1904的加强版,poj 1904王子和公主的人数是一样多的,并且给出了一个完美匹配,而这一题王子和公主的人数是不同的,而且没有给出任何匹配。因此借鉴1904的做法,我们 阅读全文
posted @ 2016-05-20 02:27 fenicnn 阅读(193) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=1904 题意: 有n个王子和n个公主,王子只能娶自己心仪的公主(一个王子可能会有多个心仪的公主),现已给出一个完美匹配,问每个王子都可以取哪些公主,并且保证取了一个公主后,全局还是存在完美匹配。 题解: 1、建图: 如果王子u对公主v 阅读全文
posted @ 2016-05-19 20:05 fenicnn 阅读(179) 评论(0) 推荐(0)
摘要:题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3946 题解: 用dijkstra跑单元最短路径,如果对于顶点v,存在一系列边(ui,v)使得dis[v]最小(dis[v]表示0到v的距离)。这些边能且只能选一条,那 阅读全文
posted @ 2016-05-07 22:41 fenicnn 阅读(227) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5154 题解: 有向图判环。 1、用dfs,正在访问的节点标记为-1,已经访问过的节点标记为1,没有访问过的节点标记为0,如果访问到-1的节点说明说有环。 2、拓扑排序。 阅读全文
posted @ 2016-04-29 22:42 fenicnn 阅读(206) 评论(0) 推荐(0)