随笔分类 -  wzm-图论

摘要:CodeForces 708D Incorrect Flow 这是道可行流最小费用的题目,这题好神奇。 看这老哥的题解就ok了。戳这 我觉得他少说了一条边,但代码中却体现了,就是一条流量为$(f,f)$的边,费用为0,就是固定流量的一条边。 还要注意一点是,$f>c$的时候,$f$往下调到$c$以下 阅读全文
posted @ 2018-10-26 15:10 汪汪鱼 阅读(291) 评论(0) 推荐(0)
摘要:ZOJ 3988 Prime Set 这个题还是很怪,在建图是,“0元素”和“1元素”不明显,而在产生了最大匹配后,才感觉像是二分图。 首先素数筛得到素数后,判断符合条件的PrIme Set集合。 然后强行跑二分图最大匹配,得到最大匹配数$cnt$,同时得到集合中未匹配元素$num$。 如果$cnt 阅读全文
posted @ 2018-10-15 21:06 汪汪鱼 阅读(341) 评论(0) 推荐(0)
摘要:二分图判定问题。 #include <bits/stdc++.h> using namespace std; const int maxn = 2e4 + 50; struct edge { int v, cost; }; vector<edge> g[maxn]; int vis[maxn]; i 阅读全文
posted @ 2018-10-08 21:12 汪汪鱼 阅读(249) 评论(0) 推荐(0)
摘要:比赛时候写复杂了…… 我写的是 计算每个节点树内所有点到某个点的距离和。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 2e5 + 50; vector<int> g[maxn 阅读全文
posted @ 2018-10-05 10:24 汪汪鱼 阅读(315) 评论(0) 推荐(0)
摘要:题目链接:The Shortest Statement 今天又在群里看到一个同学问$n$个$n$条边,怎么查询两点直接最短路。看来这种题还挺常见的。 为什么最终答案要从42个点的最短路(到$x,y$)之和,还有$x,y$到$LCA(x,y)$的距离里面取呢? 就是如果走非树边,那么一定要走42个点中 阅读全文
posted @ 2018-09-23 19:03 汪汪鱼 阅读(145) 评论(0) 推荐(0)
摘要:题目链接 题意:就是给你一颗这样的树,用一个$y$来除以两点之间每条边的权值,比如$3->7$,问最后的y的是多少,修改操作是把权值变成更小的。 这个$(y<=10^{18})$除的权值如果是$>=2$,那么最多除60几次就变成0了,问题关键是路径上会有好多1存在,这时候我们可以用并查集把他们并到一 阅读全文
posted @ 2018-09-20 21:16 汪汪鱼 阅读(247) 评论(0) 推荐(0)
摘要:好久没写过这么长的代码了,题解东哥讲了那么多,并查集优化还是很厉害的,赶快做做前几天碰到的相似的题。 阅读全文
posted @ 2018-09-20 20:05 汪汪鱼 阅读(214) 评论(0) 推荐(0)
摘要:题目链接 题解:这道题比赛的时候,学弟说是网络流,当时看N这么大,觉得网络流没法做,实际本题通过巧妙的建图,然后离散化。 先说下建图方式,首先每个覆盖区域,只有左右端点,如果我们只用左右端点的话,最多有400个点,所以第一步离散化。每个$i$和$i+1$连一条边流量为K,费用为0的边,每一个覆盖区域 阅读全文
posted @ 2018-09-19 20:57 汪汪鱼 阅读(184) 评论(0) 推荐(0)
摘要:题目链接 题意:一张无向图,把第$i$个点关联的所有边去掉,求无向图中有多少个点对不连通。 题解: 如果割的不是割点,那么总答案是$2\times (n-1)$. 如果是割点,要分别考虑每个子树的贡献. #include <iostream> #include <cstdio> #include < 阅读全文
posted @ 2018-09-18 20:58 汪汪鱼 阅读(180) 评论(0) 推荐(0)