摘要:
题目大意:求可能的最小生成树有多少棵、解:这个要用一些证明,这里只写自己的一些看完各神牛的blog后的想法总结,证明并不严谨。首先我们用kruskal求最小生成树的原理是,用权值为c的边把一些强连通分量连起来,然后c从小到大递增,用并查集判可行性。如果反证伪,则在最后一步时,存在比c小的边把强连通分量连起来了,但kruskal的特性不会让这种事情发生。所以可以证明,在第n步,对于 相同的图 来说,如果存在不同的最小生成树,对应的不同只是在第n步选择的边的可能,而设原最小生成树的第n步用的边的大小为c,那么一定有其他最小生成树的第n步,用的边也一定是c,而且使用的边的数量相同,而且连接的强连通分 阅读全文
摘要:
题目大意:给出一副无向联通图,求把一些边改成有向边之后,整幅图还是为一个强连通分量。p.s.一开始在本地做的,没读懂题意,其实是让你把边改有向而非删除边,好像要求改的数量最多,本地我提交了一个把边读入输出的程序本地spj过了= =,poj上wa了才真正想算法的。解:我原意是把桥找出来,然后其他遍历,不过好像调错的样子。听说了fjy刷了个16ms p组第一,所以去参考了下,发现就是tarjan途中,桥输出双向,其他单向即可(因为tarjan就是在找一个最大的环),所以tarjan图中处理输出就行(注意横叉边也要输一次,也就是说除了输环,桥输双向,其他任意),不过后来还是跑了32ms..View 阅读全文