![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
菜得不行的sb
摸了
展开
-
MemSQL Start[c]UP 3.0 - Round 1 E. Desk Disorder
一个点连一条边 考虑把这样的关系分成一块一块的假如自己连向自己 包括自己以及前面连到自己的都无法移动 假如连的是链(假设长度为x) 那么选一个地方为空有x种 假如是环那么只能不动或者所有一起动两种#include <iostream> #include <algorithm> #include <sstream> #include <string> #include <queue> #incl原创 2017-09-20 20:21:21 · 256 阅读 · 0 评论 -
VK Cup 2015 - Finals, online mirror D. Restructuring Company CF566D
对于区间操作 用一个并查集来维护每个点往右连续为同一祖先的最右点#include <iostream> #include <algorithm> #include <sstream> #include <string> #include <queue> #include <cstdio> #include <map> #include <set> #include <utility> #inclu原创 2017-10-10 13:14:17 · 387 阅读 · 0 评论 -
True Liars POJ - 1417
题意: 有p1个好人,p2个坏人 好人只说真话 坏人只说谎话 给出n句某个人说某个人是真人还是坏人 问是否存在好人和坏人方案的唯一解 有的话则升序输出好人先用一个带权并查集维护一个联通块内的关系 然后dp[i][j]表示前i个联通块内有j个好人的方案 因为是唯一解 所以输出方案的时候倒过来推就可以了#include <iostream> #include <algorithm> #i原创 2018-03-30 09:25:29 · 284 阅读 · 0 评论