随笔分类 - 树 DFS序
摘要:【题目】 "BZOJ 1095" 【题意】给定n个黑白点的树,初始全为黑点,Q次操作翻转一个点的颜色,或询问最远的两个黑点的距离,$n \leq 10^5,Q \leq 5 10^5$。 【算法】括号序列+线段树 【题解】参考: "konjac" 括号序列其实就是入栈出栈序,每个点在进入时加左括号和
阅读全文
摘要:【题意】阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。 经阿狸研究发现,这个打字机是这样工作的: l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。 l 按一下印有'B'的按键,打字
阅读全文
摘要:【题意】给定n个点的带边权树,对于树上存在的若干特殊点,要求任选一个点开始将所有特殊点走遍后返回。现在初始没有特殊点,m次操作每次增加或减少一个特殊点,求每次操作后的总代价。n,m<=10^5。 【算法】虚树+DFS序+set 【题解】每次询问相当于求两倍虚树路径和。 模拟虚树上dfs序的转移会发现
阅读全文
摘要:【算法】DFS序+树状数组 【题解】题意相当于统计前i-1个点在第i个点的祖先的个数,显然可以用dfs维护,用树状数组差分维护前缀和。 出栈不新加节点就要注意左闭右开,即in[a[i]]处+1,ou[a[i]]+1处-1。 出栈新加节点就要注意数组开双倍。 #include<cstdio> #inc
阅读全文
摘要:【算法】Link-Cut Tree+线段树(维护DFS序) 【题解】整整三天……T_T 这篇题解比较资瓷:permui 这道题虽然树形态没有变化,但用lct写的原因在于把题目中的操作一进行了神转化:每条重链表示一种颜色,点到根的颜色数=经过的轻链数+1。 询问一个点的子树所有结点到根的代价和(的平均
阅读全文
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡
阅读全文