摘要: 【UOJ 177】欧拉回路 题面 "UOJ" 题解 首先图不连通就没啥好搞的了。 对于无向图而言,每个点度数为偶数。 对于有向图而言,每个点入度等于出度。 然后就是一本通上有的做法,直接$dfs$一遍就好了。。 cpp include include using namespace std; def 阅读全文
posted @ 2019-03-01 22:39 小蒟蒻yyb 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 【LOJ6036】编码(2 sat) 题面 "LOJ" 题解 很显然的一个暴力: 枚举每个串中的 是什么,然后把和它有前缀关系的串全部给找出来,不合法的连边处理一下,那么直接跑$2 sat$就做完了。 现在的问题就在与不合法的数量可能会很多,所以需要优化这个连边的过程。 显然前缀关系和$Trie$树 阅读全文
posted @ 2019-03-01 22:08 小蒟蒻yyb 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ4331】[JSOI2012]越狱老虎桥(Tarjan) 题面 "BZOJ" 然而BZOJ是权限题QwQ "洛谷" 题解 先求出所有割边,那么显然要割掉一条割边。 如果要加入一条边,那么显然是把若干条割边串起来,使得这些割边不能被割掉。 那么把割边求出来之后,按照权值从小到大考虑所有割边, 阅读全文
posted @ 2019-03-01 20:00 小蒟蒻yyb 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 【Nowcoder71E】组一组(差分约束,最短路) 题面 "Nowcoder" 题解 看到二进制显然就直接拆位,那么区间的按位或和按位与转成前缀和之后,可以写成两个前缀和的值的差的大小关系,那么直接差分约束就好了。 注意几个细节,首先相等是要两侧都要连边,不要直连了一侧;然后这题卡常,所以对于区间 阅读全文
posted @ 2019-03-01 17:46 小蒟蒻yyb 阅读(242) 评论(0) 推荐(1) 编辑
摘要: 【CodeChef】Querying on a Grid(分治,最短路) 题面 "Vjudge" "CodeChef" 题解 考虑分治处理这个问题,每次取一个$mid$,对于$mid$上的三个点构建最短路径树(因为保证了最短路唯一所以是树)。 如果两点之间的最短路径跨越了$mid$,那么必定有$di 阅读全文
posted @ 2019-03-01 16:57 小蒟蒻yyb 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ4061】[Cerc2012]Farm and factory(最短路,构造) 题面 "BZOJ" 然而权限题QwQ。 题解 先求出所有点到达$1,2$的最短路,不妨记为$d_{u,1},d_{u,2}$。 那么假设新点是$x$,任意一个点$u$。 那么可以得到几个不等式:$d_{u,1} 阅读全文
posted @ 2019-03-01 15:50 小蒟蒻yyb 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 【AtCoder3611】Tree MST(点分治,最小生成树) 题面 "AtCoder" "洛谷" 给定一棵$n$个节点的树,现有有一张完全图,两点$x,y$之间的边长为$w[x]+w[y]+dis(x,y)$,其中$dis$表示树上两点的距离。 求完全图的$MST$。 题解 首先连边的这个式子可 阅读全文
posted @ 2019-03-01 15:16 小蒟蒻yyb 阅读(804) 评论(8) 推荐(0) 编辑
摘要: 【AtCoder2134】ZigZag MST(最小生成树) 题面 "洛谷" "AtCoder" 题解 这题就很鬼畜。。 既然每次连边,连出来的边的权值是递增的,~~所以拿个线段树xjb维护一下就可以做了~~。那么意味着只有前面的点集被连在一起之后才可能选择后面的边,因此我们可以强制修改一下边的连接 阅读全文
posted @ 2019-03-01 14:50 小蒟蒻yyb 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 【CF891C】Envy(最小生成树) 题面 "Codeforces" "洛谷" 题解 考虑$MST$的构建过程,对于所有权值相同的边一起考虑。 显然最终他们连出来的结果是固定的。 把连边改为把联通块联通,这样子只需要检查询问中的权值相同的边连接这些联通块是否会成环。 并查集解决即可。 cpp in 阅读全文
posted @ 2019-03-01 14:26 小蒟蒻yyb 阅读(440) 评论(0) 推荐(0) 编辑