拓扑排序
South-twilight
一个在OI留下遗憾,ACM弥补遗憾的退役选手
展开
-
1月12号总结
今天做了几道题,来谈一谈感想。 首先是CF11080F:求最小生成树的个数。 这道题我的作法是:构造一颗最小生成树,枚举其他不在里面的边,若加入这条边,一定可以构成一个环。在这个环中(除开这条边)的最大边权与这条边相等,则可以多出一颗最小生成树。维护最大值和环,用树上倍增就可以了。不过倍增一 个地方容易写错,这里提出来一下: void init(){ for(int j=1;(1<&...原创 2020-01-12 21:00:00 · 116 阅读 · 0 评论 -
拓扑排序
简单的回顾了一下拓扑排序,并做了几道题,在此做一下总结。 拓扑排序算法原理比较简单,但在实现上,给我提供了一种比较好用的技巧。 对这种需要判断环的存在的,需要区分历史遍历过的和现在正在遍历的。这里对vis[]vis[]vis[]进行了扩展,用−1-1−1来表示标记现在正在访问的路径,而访问结束标记为111。当然,这个只能在dfsdfsdfs中使用。 bool dfs(int node){ vis...原创 2020-01-11 09:26:29 · 190 阅读 · 0 评论