![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Unnamed_Cube
The world is a 3DL.It's push or be poped.|WSSB
展开
-
Solution:CF877E(Danil and a Part-time Job)
题目链接 Link:CF877E 解题思路 一道DFS序的好题。 DFS序想必大家都知道,就是用DFS遍历树或图时访问节点的顺序。我们一般说的DFS序,都是指树的DFS序。以下的DFS序都是从根开始的树上DFS序。 DFS序有一个重要的性质:任何一个子树,它的节点在DFS序中一定排成连续的一段。这时,我们就可以把某些修改子树+查询问题转为区间修改+查询问题。 我们这一题实际上就是线段树。先搞DFS序,记录每一个节点对应的区间,然后线段树即可。 代码实现 #include <iostream> #原创 2022-01-18 16:02:48 · 283 阅读 · 0 评论 -
Solution:P2502([HAOI2006]旅行)
题目链接 Link:P2502 解题思路 如果我们知道了路径中最大的速度,那么显然让最慢的路越快越好。 于是我们可以枚举最快的路,得到最小的路就交给Kruskal来实现。 代码实现 #include <algorithm> #include <iostream> #include <array> using namespace std; struct edge { int from,to,val; bool operator>(const edge&原创 2021-12-19 20:52:31 · 188 阅读 · 0 评论 -
Solution:P2449([SDOI2005]矩形)
题目链接 Link:P2449 解题思路 我们可以使用并查集。当两个矩形有交叠时,将他们所在的集合合并。 最后统计有几个不同的集合即可。 注意,只有顶点重合不算重合。 代码实现 #include <unordered_set> #include <iostream> #include <array> using namespace std; array<pair<pair<int,int>,pair<int,int>>,700原创 2021-12-18 15:11:49 · 357 阅读 · 0 评论