摘要: 传送门图同构问题 Graph Isomorphism不过这道题中点的最大度是2,所以图的构型中每个连通分量要么是链(或单个点),要么是单环,所以同等大小的连通分量要区分两种,之后挨个对比就行了。 我一直使用的都是并查集的“根记录个数(负值)版本”。 C++... 阅读全文
posted @ 2017-04-10 15:52 CrossingOver 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 传送门找两点间最长边(一条路径)的最小值(所有路径),这个值的意义在本题中相当于这两点可以在某种意义上连通了,然后给定一个值L问你最多能连通多少种两点。 需要注意的是L不是和的上限,而是单个两点间费用的上限。所以只用想有多少种两点间的费用小于等于L就行了。 ... 阅读全文
posted @ 2017-04-10 14:18 CrossingOver 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 传送门给定点之间的关系,让你判断序列是否唯一或者非法。 注意的是 点之间相等的话总是可以根据另一种关系排序,所以如果某些点相等的话就不用考虑他们之间的关系了(他们之间的排序是唯一且固定的),而且他们在总排序上是连续的。 所以相等的一些点可以看成一个连通分量,... 阅读全文
posted @ 2017-04-09 23:19 CrossingOver 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 传送门这题不会,记住写法就行了,好像都是这么写的?第一次从最小边开始往上添,第二次从第二小边开始。。。每次添边直到那俩点连通,每次记录该次的极差并更新最优值。可得到的结论是,第i+1次添的最后一条边肯定不会比第i次添的最后一条边权值还小。(2019年4月12... 阅读全文
posted @ 2017-04-08 21:46 CrossingOver 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 传送门3371的弱化版,怎么都能过。#include #include #include #include using namespace std;const int MAXN = 1e2 + 3;const int INF = 1e9;int dis[MA... 阅读全文
posted @ 2017-04-08 21:34 CrossingOver 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 传送门找最大连通分量,没有一对pairs就输出1。#include #include #include #include using namespace std;const int MAXN = 1e7 + 2;int pre[MAXN];int pairs... 阅读全文
posted @ 2017-04-08 21:26 CrossingOver 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 传送门这个题是判断是否为树。 树的边是有向的,树也可以为空。 代码里面,s指子结点集,total指结点集,v指边集。 还有一个坑,最后结束标志是负数而不一定-1?#include #include #include #include #include usi... 阅读全文
posted @ 2017-04-08 20:19 CrossingOver 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 传送门这题主要就是点的数量不确定,另外一个点都没有的话就是YES,而且这题数据里没有有环非连通图,所以直接判断边和点的数量关系即可。#include #include #include #include #include using namespace st... 阅读全文
posted @ 2017-04-08 20:07 CrossingOver 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 传送门这个题就是考建图,其实想起来以前玩的一个手机游戏就是这种类似铺管道的。 在矩阵里,每个点往4个方向看一下能不能和相邻点接上,但是这样的话要判断重复。更好的想法是往右下两个方向就行了,遍历矩阵按照外层从上到下,内层从左到右。#include #inclu... 阅读全文
posted @ 2017-04-08 18:04 CrossingOver 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 传送门这道题各种奇技淫巧,然而也只是勉强不超时。 题目中的k不是指k个连通的城市,是指k行信息,每行才是连通的城市,而且每行给出的不一定是连通分量。第一种用并查集做,关于连通的城市怎么处理,不能union两点(神tm超时),只能往边表里添加一条权值为0的边,... 阅读全文
posted @ 2017-04-08 17:40 CrossingOver 阅读(132) 评论(0) 推荐(0) 编辑