上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 55 下一页
摘要: 题意: 给定一颗n个节点的树。每个点有点权$v_i$,询问有序对$(x,y)$使得: x不是y的祖先,且y不是x的祖先。 x和y的简单路径之和不超过k。 x和y的点权满足:\(v_x+v_y=2v_{lca(x,y)}\) 题解: 假设当前枚举的点为$x$,子树根节点为$u$。 需要找的点$y$需要 阅读全文
posted @ 2021-04-06 16:24 zlc0405 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个长度为n的数组a,两个整数p和k。 询问有多少数对$(x,y)(1 \leq x < y \leq n)\(使得\)(a_x2+a_y2)(a_x+a_y)$对p取模的结果为k。 保证p是质数。 题解: \((a_x^2+a_y^2)(a_x+a_y)\%p=k\) \((a_x^2 阅读全文
posted @ 2021-04-05 14:40 zlc0405 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 给出n个点。 对每个点,询问它的子树中: 假设距离它为d的点有x个,求最大的x,并输出d。 如果有多个x相同,输出最小的d。 题解: 树上启发式合并。 用数组f维护当前节点子树内第i层的节点数。 数组Max维护当前节点子树内最大的节点数的层。 数组Ans维护当前节点的答案。 在转移时,Max和Ans 阅读全文
posted @ 2021-04-02 15:38 zlc0405 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 给出一棵树,每个节点上有一个字符串。 每次询问子树x内的第y层儿子中不重复名字的个数。 题解: 树上启发式合并的过程中,数组f维护第i层中有多少种不同的字符串。 这里不太好直接维护,用set维护f数组即可。 #include<bits/stdc++.h> using namespace std; c 阅读全文
posted @ 2021-04-02 15:16 zlc0405 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 给出一个树。 每次询问第x点有多少y代表亲。 两个点互为y代表亲当且仅当它们的第y个祖先相同。 题解: 每个点的y代表亲的答案就是: 先向上找节点的第y个祖先,这个祖先子树内的第dep+y层节点总数就是答案。 那么就可以先对询问离线,然后用倍增LCA找到每个点的第y层祖先,记录dep+y和询问编号这 阅读全文
posted @ 2021-04-02 14:43 zlc0405 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 给出一棵树 对每个节点,询问有多少对p代表亲。 p代表亲是指:两个节点的第p个祖先相同。 题解: 离线处理询问 找出当前询问节点的第$p$个祖先,然后那个祖先下面1到p层的节点数量-1就是答案。 定义$f$存储当前节点子树内$x$层的节点总数。 阅读全文
posted @ 2021-04-02 00:23 zlc0405 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 一棵以1为根的树,每个节点上都有1个字母,有m个询问。每次询问v对应的子树中,深度为h的这层节点的字母,能否打乱重排组成回文串。根的深度为1,每个点的深度为到根的距离。 #include<bits/stdc++.h> using namespace std; const int maxn=5e5+1 阅读全文
posted @ 2021-04-02 00:22 zlc0405 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 给出一个n个点的树。 每次询问点x的子树内出现次数为y的颜色至少有多少种。 题解: 先将询问离线。 用f数组记录每种颜色在当前子树内的出现次数情况 用cnt数组记录当前子树内出现次数大于等于i的不同颜色数量 当前节点的f和cnt来源于重儿子。 然后更新f的状态时,cnt[f[i]]++即可。 然后遍 阅读全文
posted @ 2021-04-01 23:16 zlc0405 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 给出一个n个点的树 求出树中每个子树出现次数最多的所有颜色的编号的和。 题解: 搜索的过程中,重儿子所在的子树搜一遍,记录颜色的出现情况 然后把轻儿子往重儿子上合并 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+100 阅读全文
posted @ 2021-04-01 22:46 zlc0405 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 只有22种字符。 一个串满足答案的条件是: 每个字符出现次数都为偶数或者出现次数为奇数的字符仅有一个。 因此我们可以考虑: 用0表示这个字符出现次数为偶数,1表示出现次数为奇数。 而对于一个路径上的字符,我们只需要考虑每个字符的出现次数,这样我们用一个整数就可以表示出所有符合条件的状态:0或者(1< 阅读全文
posted @ 2021-04-01 21:57 zlc0405 阅读(50) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 55 下一页