随笔分类 - 树上乱搞---dfs序
摘要:题意:有N个串,给出的形式是拼接给出,对于第i行: (1,c)表示字符串i是单个字母c; (2,p,c)表示字符串i=在字符串p后面接上一个字母c。 然后给出M个提问,形式是(i,string)。问string在字符串i中出现了多少次。 思路:这类题显然是在AC自动机上乱搞。 对于询问的串建立AC自
阅读全文
摘要:题意:给定一棵树,带边权。然后Q次询问,每次给出(u,v),求这个路径上最小的未出现的边权。 思路:树上莫队,求mex可以用分块或者bitset,前者可能会快一点。 莫队过程:求出欧拉序,即记录dfs的in和out时间戳。 然后摊平成数组,在数组上进行莫队。 一般的莫队需要单独考虑LCA,因为LCA
阅读全文
摘要:题意:给定带点权的树,问多少个连通块,其乘积<=M; N<=2000,M<1e6; 思路:连通块-->分治; 由于普通的树DP在合并的时候复杂度会高一个M,所以用依赖背包来做。 (当然,由于体积分布是离散的,可能有些选手用map也可以过,这样避免了每次都for(i,1,M),取决于数据吧)。 那么现
阅读全文
摘要:题目描述 给你一个长为n的序列a和一个常数k 有m次询问,每次查询一个区间[l,r]内所有数最少分成多少个连续段,使得每段的和都 <= k 如果这一次查询无解,输出"Chtholly" 输入描述: 第一行三个数n,m,k第二行n个数表示这个序列a之后m行,每行给出两个数l r表示一次询问 输出描述:
阅读全文
摘要:pro:给定N+1个点的树,有M对关键点,现在让你破坏最少的点,使得M对关键点不连通。 sol:贪心,我们把M对点按照LCA深度排序,每次破坏LCA。 如果一对点(u,v,lca),u-lca-v有点被破坏,则可以不用破坏新的点。 我们可以用dfs序+树状数组来处理。 如果破坏了一个点,则给它的子树
阅读全文
摘要:Description 给您一颗树,每个节点有个初始值。 现在支持以下两种操作: 1. C i x(0<=x<2^31) 表示将i节点的值改为x。 2. Q i j x(0<=x<2^31) 表示询问i节点到j节点的路径上有多少个值为x的节点。 给您一颗树,每个节点有个初始值。 现在支持以下两种操作
阅读全文
摘要:题意:现在有一棵树,1号节点是水源,叶子节点是村庄,现在有些怪兽会占领一些村庄(即只占领叶子节点),现在要割去一些边,使得怪兽到不了水源。给出怪兽占领和离开的情况,现在要割每次回答最小的割,使得怪兽不与1号节点有联系,而且满足被阻隔的村庄最少。输出最小割与组少的被误伤的村庄。 思路:把与一号节点相邻
阅读全文
摘要:给定一棵N个节点的树,编号1~N。其中1号节点是根,并且第i个节点的权值是Vi。 针对这棵树,小Hi会询问小Ho一系列问题。每次小Hi会指定一个节点x,询问小Ho以x为根的子树中,最小的权值是多少。为了增加难度,小Hi可能随时改变其中每个节点的权值。 你能帮助小Ho准确、快速的回答小Hi的问题吗?
阅读全文
摘要:You are given a node-labeled rooted tree with n nodes. Define the query (x, k): Find the node whose label is k-th largest in the subtree of the node x
阅读全文