概述线段是一种数据结构, 其采用了分块思想, 可解决RMQ, RSQ(Range sum query)问题, 同时优秀的将复杂度保持在O(log n)级别相对比前缀和和ST表, 线段支持修改1. 线段所用的变量定义&说明在实现线段时, 我一般习惯定义2个数组int t[MAX << 2], a[MAX << 2];其MAX请根据需求修改t用来存储这棵, 采
一、内容题意:给定一个以1为根节点的, 有2个操作,get V 代表得到v 和v的子树中所有开着灯的房间数,pow V代表把V和 V的子树们状态转换一下,开着的灯关上,关着的灯开起。二、思路dfs转化为线性结构。用一个flag标记维护转变的状态,一个区间转变2次就等于没转变,所以每次flag ^= 1。sum保存区间上面1的个数,若果遇到转化,就将区间长度减去sum里面的值。...
原创 2021-08-27 14:27:10
168阅读
一、内容题意:给定一个以1为根节点的, 有2个操作,get V 代表得到v 和v的子树中所有开着灯的房间数,pow V代表把V和 V的子树们状态转换一下,开着的灯关上,关着的灯开起。二、思路dfs转化为线性结构。用一个flag标记维护转变的状态,一个区间转变2次就等于没转变,所以每次flag ^= 1。sum保存区间上面1的个数,若果遇到转化,就将区间长度减去sum里面的值。...
原创 2022-02-03 14:10:52
200阅读
题目链接:点击打开链接题意:给定n个点,m个询问的无向(1为根)下面n个数表示每个点的权值下面n-1行给出树操作1:x点权值+v, x的第 i & 1 的儿子-v, 第 !(i&1) 的儿子+v操作2:询问x点权值dfs转成序列根据深度把点分成2组分别用线段维护。。然后Y一下#include#include#include#include
原创 2021-08-13 14:08:26
240阅读
题目链接:点击打开链接 题意: 给定n个点。m个询问的无向(1为根) 以下n个数表示每一个点的权值 以下n-1行给出树 操作1:x点权值+v, x的第 i & 1 的儿子-v, 第 !(i&1) 的儿子+v 操作2:询问x点权值 dfs转成序列 依据深度把点分成2组 分别用线段维护。。 然后
转载 2017-07-02 16:07:00
51阅读
2评论
题目链接:://codeforces.com/problemset/problem/838/B You are given a directed weighted graph with n nodes and 2n - 2 edges. The nodes are labeled from 
转载 2018-05-07 21:38:00
72阅读
题目链接:http://codeforces.com/contest/343/problem/D题意:给定一棵(给定图一定是)1、把v点及其子树灌上水2、把v点及v到根的路径去掉水3、询问v点是否有水思路:dfs(不是欧拉序列)把转成dfs_clock那么对于点v 出现的时间in[v]和消失的时间out[v] ,一定会把v子树下所有节点都夹在[ in[v], o
原创 2021-08-13 14:06:55
107阅读
a,把a及a的所有祖先放水。3 a,询问a点有没有水,有输出1,否则0
原创 2016-05-24 12:14:58
59阅读
描述给你一个图,一共有N个点,2*N-2条有向边。 边目录按两部分给出1、 开始的n-1条边描述了
原创 2022-07-05 10:34:20
79阅读
这个题多了一个操作难度直线上升,看完题解才会写 有一棵点数为 N 的,以点 1 为根,且点有边权。然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a 。操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。操作 3 :询问某个节点 x 到根的路径中所有点的点权和
原创 2021-07-21 16:10:55
185阅读
思路: 先搞出来每个点的DFS (要有入栈和出栈两种状态的) 处理出来 线段区间有多少入栈的和多少出栈的加区间的时候就加(入-出)*wei查前缀和//By SiriusRen#include #include #include using namespace std;#de...
转载 2016-11-11 17:08:00
76阅读
非递归的DFS写炸了… 交了一个递归版的 过了………..//By SiriusRen#include #include #include using namespace std;const int N=1000050;int n,nn,q,xx,yy,stk[N],in[N],o...
转载 2017-01-31 12:58:00
92阅读
题目链接 题目思路 这个题目好像有1w种写法。。 我写下我的思路,首先观察题目可以发现其实就是可以找到$x$的最大祖先使得这个值小于$r$ 这样可以使用倍增实现 那么题目就可以转换为结点$x$中子数中有多少个节点的$t$值大于等于$l$ 然后用离线+线段+dfs 实现即可 代码 #include ...
转载 2021-08-14 21:45:00
82阅读
2评论
题目描述有一棵点数为 N 的,以点 1 为根,且点有边权。然后有 M 个操作,分为三种:操作 1 :把某个节点
原创 2022-07-05 10:28:54
164阅读
Snacks Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description 百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v
转载 2017-01-12 23:32:00
61阅读
2评论
题目链接:://acm.hdu.edu.cn/showproblem.php?pid=5692 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Descript
转载 2018-05-04 10:34:00
51阅读
2评论
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5692题意:Problem Description百度
原创 2016-05-30 23:01:09
42阅读
传送门:点击打开链接题意:给你一棵,根节点为1有2种操作,第一种是给u节点所在
原创 2022-11-24 00:00:07
63阅读
DFS 考虑dfs的非边全部都是反祖边, 对于新加的一条边那么所有它一定是一条反祖边, 那么用线段把 对于这条边不可行的点全部ban掉就好了。
转载 2019-10-17 14:52:00
78阅读
2评论
Snacks Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1660 Accepted Submission(s): 403 Problem
原创 2021-07-21 15:50:46
100阅读
  • 1
  • 2
  • 3
  • 4
  • 5