
【数据结构】圆方树
文章平均质量分 86
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【CodeForces487E】【UOJ30】Tourists
【题目链接】CodeForcesUOJ【思路要点】首先我们来证明点双连通分量的一个性质。引理:在一个点双连通分量中,给定任意三个不同的点\(a\),\(b\),\(c\),一定存在一条从\(a\)到\(c\)的,经过每个点至多一次的简单路径经过了\(b\)。证明:考虑网络流。在原图中存在无向边的点对之间建立无向边,容量为1;对每个点拆点限流,容量为1;由\(a\)和\(c\)向汇点连边,容量为1;...原创 2018-05-20 11:00:27 · 322 阅读 · 0 评论 -
【BZOJ2125】最短路
【题目链接】点击打开链接【思路要点】建立圆方树,预处理根节点到每个圆点的最短路的长度\(dist_i\)。询问时分Lca为圆点和方点分别讨论。若Lca为圆点,那么答案就是\(dist_x+dist_y-2*dist_{Lca}\)。若Lca为方点,那么答案就是\(dist_x-dist_{tx}+dist_y-dist_{ty}+query(Lca,tx,ty)\)。其中\(tx\)、\(ty\)...原创 2018-05-20 13:38:16 · 499 阅读 · 0 评论 -
【BZOJ1023】【SHOI2008】仙人掌图
【题目链接】点击打开链接【思路要点】建立圆方树,并进行树形DP,求出每个圆点到其子树内最远的圆点的距离\(dp_{i,0}\),以及在不同的子树内距离最远的圆点的距离\(dp_{i,1}\)。考虑枚举直径上离根最近的点:若该点为圆点,那么该圆点对答案的贡献显然为\(dp_{i,0}+dp_{i,1}\)。若该点为方点,那么问题便转化为了“在一个\(N\)个点的环上有一系列点,每个点有权值\(val...原创 2018-05-20 18:14:44 · 228 阅读 · 0 评论 -
【BZOJ4316】小C的独立集
【题目链接】点击打开链接【思路要点】建立圆方树,并进行树形DP。对于圆点\(i\),记\(dp_{i,0}\)表示不选取\(i\),\(i\)子树的最大独立集,\(dp_{i,1}\)表示\(i\)子树的最大独立集。对于方点\(i\),记\(dp_{i,0}\)表示不选取与\(i\)的父亲相邻的圆点,\(i\)子树的最大独立集,\(dp_{i,1}\)表示\(i\)子树的最大独立集。在方点处的转移...原创 2018-05-20 19:52:01 · 684 阅读 · 0 评论 -
【BZOJ1487】【HNOI2009】无归岛
【题目链接】点击打开链接【思路要点】没有任何四个点或两个点的图满足题目中对岛的定义,因此题目叙述中的每一个岛或是一个三元环,或是一个点。因此原图数一个仙人掌,建立圆方树,并进行树形DP。对于圆点\(i\),记\(dp_{i,0}\)表示不选取\(i\),\(i\)子树的最大答案,\(dp_{i,1}\)表示\(i\)子树的最大答案。对于方点\(i\),记\(dp_{i,0}\)表示不选取与\(i\...原创 2018-05-20 20:22:47 · 271 阅读 · 0 评论 -
【LOJ2587】「APIO2018」铁人两项
【题目链接】点击打开链接【思路要点】首先我们来证明点双连通分量的一个性质。引理:在一个点双连通分量中,给定任意三个不同的点\(a\),\(b\),\(c\),一定存在一条从\(a\)到\(c\)的,经过每个点至多一次的简单路径经过了\(b\)。证明:考虑网络流。在原图中存在无向边的点对之间建立无向边,容量为1;对每个点拆点限流,容量为1;由\(a\)和\(c\)向汇点连边,容量为1;由源点向\(b...原创 2018-05-22 18:01:49 · 741 阅读 · 0 评论 -
【BZOJ5329】【SDOI2018】战略游戏
【题目链接】点击打开链接【思路要点】建立原图的圆方树。对于每个询问,建立其询问点集的虚树,分别考虑虚树的每一个点和每一条边上的圆点是否能够作为答案。简单树形DP即可。时间复杂度\(O(T(N+\sum S)LogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 200005;const int...原创 2018-05-31 13:42:54 · 363 阅读 · 0 评论 -
【省内训练2018-12-21】Connection
【思路要点】首先考虑某一种颜色,若该颜色在各连通块中的出现次数为 {x1,x2,...,xm}\{x_1,x_2,...,x_m\}{x1,x2,...,xm} ,则该颜色对答案的贡献应为 ∑i=1m∑j=i+1mxi∗xj=(∑i=1mxi)2−∑i=1mxi22\sum_{i=1}^{m}\sum_{j=i+1}^{m}x_i*x_j=\frac{(\sum_{i=1}^{m}x_...原创 2018-12-22 18:17:50 · 187 阅读 · 0 评论 -
【LOJ6240】仙人掌
【题目链接】点击打开链接【思路要点】记 xix_ixi 表示点 iii 被选中时,点 iii 所在的连通块共被操作了多少次,则有E(Ans)=E(∑i=1Nxi)=∑i=1NE(xi)E(Ans)=E(\sum_{i=1}^{N} x_i)=\sum_{i=1}^{N} E(x_i)E(Ans)=E(i=1∑Nxi)=i=1∑NE(xi)考虑计算 xix_ixi ...原创 2019-04-13 15:14:08 · 1155 阅读 · 0 评论