随笔分类 -  DFS序树剖线段树各种树

摘要:题意:给你一个n边n点的无向连通图,两个操作,操作一改变某个边的权值,操作二查询某两个点之间的路径长度。 题解:随便删掉环上一条边搞一棵树出来,因为两点间距离是两点各自到根的距离之和减去2*lca两点到根的距离。 所以修改操作就变为维护点到根这条链上的权值,差分一下 采用树状数组维护。 查询的时候就 阅读全文
posted @ 2018-08-14 01:25 Billyshuai 阅读(390) 评论(0) 推荐(0)
摘要:题意:求每个点的子树中哪一层节点数最多,如果有节点数最多不唯一,取层数最小的。 题解:dus on tree 基本想法是对每一个节点都构建一个deep数组,然后从底向上更新过来,但是这样空间复杂度和时间复杂度都会是O(n^2)无法承受。 然后向办法共用deep数组和记录其数值的数组,那么这时候对于一 阅读全文
posted @ 2018-07-15 17:06 Billyshuai 阅读(569) 评论(0) 推荐(0)
摘要:题意:给你一颗树,然后这颗树有n*n条路径,a->b和b->a算是一条,然后路径的权值是 vi*(-1)^(i+1) 注意是点有权值。 从上头往下考虑是点分治,从下向上考虑就是树形DP,分成三类路径:1.指定点单点 2.跨过指定点3.没跨过指定点但不是单点 细节要好好打磨一下,然后还是用long l 阅读全文
posted @ 2018-04-12 22:23 Billyshuai 阅读(321) 评论(0) 推荐(0)
摘要:题意:n点m边,然后要求走最多的路,走路的时候经过的边权必须是严格递增。 解法1:传统的区间更新 解法2:发现区间更新只是对两个固定的点所延长形成的区间段,所以问题可以退化成单点更新单点查询。 然后动态开辟线段树就行了 线段树有1e5个然后每个都是权值线段树 解法一所需要的空间会比解法二大很多很多, 阅读全文
posted @ 2018-04-11 17:21 Billyshuai 阅读(263) 评论(0) 推荐(0)
摘要:题目链接 题目大意:给你两个序列,第二个序列可以任意进行排列变换,然后由这两个序列一一异或得到答案序列,要求答案序列的字典序最小。 可持续字典树与第K大可持续线段树的区别主要在于每个节点上 ,它多了一个记录值。 因为线段树肯定是对区间处理,要+1的,但是字典树是对点处理,这两个值都要记录。 阅读全文
posted @ 2018-03-28 16:15 Billyshuai 阅读(253) 评论(0) 推荐(0)
摘要:E. Physical Education Lessons time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output E. Physical 阅读全文
posted @ 2018-02-02 14:19 Billyshuai 阅读(230) 评论(0) 推荐(0)
摘要:对所有串建立AC自动机,那么若前缀ii 是前缀jj 的后缀,说明ii 是Fail树上jj 的祖先。 所以对于询问(x,y)(x,y) ,答案就是两点在Fail树上的LCA在原Trie中子树内的字符串总数。 时间复杂度O(nlogn)O(nlog⁡n) 。http://www.cnblogs.com/ 阅读全文
posted @ 2018-01-08 16:06 Billyshuai 阅读(301) 评论(0) 推荐(0)
摘要:题目描述 给你一个长为n的序列a m次查询 每次查询一个区间的所有子区间的gcd的和mod1e9+7的结果 输入描述: 第一行两个数n,m之后一行n个数表示a之后m行每行两个数l,r表示查询的区间 输出描述: 对于每个询问,输出一行一个数表示答案 <!-- <br/> <h5 style="font 阅读全文
posted @ 2018-01-07 15:21 Billyshuai 阅读(592) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/u014492306/article/details/47981315 //变相离线做法 离散化缩小区间范围,做两大个线段树,第一个就是普通的持久化树,有个前缀和就好。 第二个用线段树套树状数组,每次询问就把这两个都求出来加一下。 更改就更改第二个,其实更改 阅读全文
posted @ 2018-01-03 17:44 Billyshuai 阅读(275) 评论(0) 推荐(0)
摘要:时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 wyf非常喜欢树。一棵有根数树上有N个节点,1号点是他的根,每条边都有一个距离,而wyf是个爱问奇怪问题的熊孩子,他想知道对于某个点x,以x为根 阅读全文
posted @ 2017-11-28 17:33 Billyshuai 阅读(173) 评论(0) 推荐(0)
摘要:Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12984 Accepted Submission(s): 3962 Pr 阅读全文
posted @ 2017-10-26 12:33 Billyshuai 阅读(217) 评论(0) 推荐(0)
摘要:Atlantis Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14378 Accepted Submission(s): 5931 Probl 阅读全文
posted @ 2017-09-26 00:18 Billyshuai 阅读(593) 评论(0) 推荐(0)
摘要:Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 24253 Accepted: 8060 Description Give a tree with n vertices,each edge has a length(po 阅读全文
posted @ 2017-09-20 20:14 Billyshuai 阅读(164) 评论(0) 推荐(0)
摘要:首先是给出先序中序求后序 对于给定的一个二叉树的先序遍历和后序遍历,输出有多少种满足条件的二叉树。两棵二叉树不同当且仅当对于某个x,x的左儿子编号不同或x的右儿子编号不同。 Input 第一行一个正整数n(3<=n<=10000),表示二叉树的节点数,节点从1到n标号。 第二行n个整数a[i](1< 阅读全文
posted @ 2017-09-04 19:24 Billyshuai 阅读(349) 评论(0) 推荐(0)
摘要:Tree Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others)Total Submission(s): 2058 Accepted Submission(s): 599 Problem 阅读全文
posted @ 2017-09-02 13:53 Billyshuai 阅读(175) 评论(0) 推荐(0)
摘要:There is a rooted tree with n nodes, number from 1-n. Root’s number is 1.Each node has a value ai. Initially all the node’s value is 0. We have q oper 阅读全文
posted @ 2017-07-28 21:55 Billyshuai 阅读(232) 评论(0) 推荐(0)
摘要:4260: Codechef REBXOR Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数。 第二行包含N个整数A1,A2,…,AN。 输入数据的第一行包含一个整数N,表示数组中的元素个数。 第二行包含N个整数A1,A2,…,AN。 输入数据的第一行包含一个 阅读全文
posted @ 2017-07-06 20:27 Billyshuai 阅读(288) 评论(0) 推荐(0)
摘要:The xor-longest Path Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6853 Accepted: 1464 Description In an edge-weighted tree, the xor-leng 阅读全文
posted @ 2017-07-06 19:42 Billyshuai 阅读(222) 评论(0) 推荐(0)