
_____数据结构_____
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
2018.08.30【校内模拟】T3 图论题 (dfs序)(线段树)
【描述】 给你一个图,一共有 N 个点,2*N-2 条有向边。 边目录按两部分给出 1. 开始的 n-1 条边描述了一颗以 1 号点为根的生成树,即每个点都可以由 1 号点到达。 2. 接下来的 N-1 条边,一定是从 i 到 1(2<=i<=N)的有向边,保证每个点都能到1 有q 次询问: 1 x w :表示将第 x 条边的边权修改为w...原创 2018-08-30 14:52:12 · 230 阅读 · 0 评论 -
2018.09.11【BZOJ1370】团伙(并查集)
传送门 解析: 好裸的并查集。。。 首先如果我们已经得到每个人属于的团伙编号,就只需要查有几个根节点,也就是fax==xfax==xfa_x==x的点。 那么怎么合并? 朋友关系直接合并。 遇到敌人关系的时候,如果对方已经有记录的敌人了,就将自己和对方记录的敌人合并,不然就将自己标记为对方的敌人,因为我敌人的敌人是我的朋友,属于同一个团伙。 代码: #include&l...原创 2018-09-11 20:23:05 · 190 阅读 · 0 评论 -
2018.11.02【校内模拟】优美的序列(单调栈)
传送门 解析: 显然我们需要处理出所有数能够管辖的区间的范围。也就是处理出左右端点。 整除?这个还是可以用单调栈维护的,先讲做法,再证明。 维护栈中每个数在数列中的位置,遇到下个数先判断它是否是栈顶数的倍数,否则一直弹栈顶并判断,直到栈为空。这一轮中弹出去的数能够管辖的边界就在这个数的前一个位置。 考虑最开始栈时空的,所以这个策略得到的栈任意时刻上面的数都是下面的数的倍数。 而一个数倍数的倍数肯...原创 2018-11-02 16:12:56 · 285 阅读 · 0 评论 -
【GXOI/GZOI2019】与或和(单调栈)
传送门 题解: 对于与,我们只需要知道每一位上有多少个矩阵为全1。 对于或,我们只需要知道每一位上有多少个矩阵为全0。 单调栈维护一下就没了。 代码: #include<bits/stdc++.h> #define ll long long #define re register #define gc get_char #define cs const namespace IO{...原创 2019-09-05 21:15:38 · 167 阅读 · 1 评论