看了一下网上基本都是线段树二分的题解,然而我想到一种整体二分的思路,正好练习一下。 是道好题。 首先用树上ST表处理,用于求LCA。 考虑整体二分离线求解。 一种方法是用树链剖分的,复杂度是$O(log^2n)$的,在套上个整体二分,复杂度达到了$O(nlog^3n)$所以说不可以直接树剖暴力。 可 ...
分类:
其他好文 时间:
2019-10-03 20:01:54
阅读次数:
84
$Luogu$ $Sol$ 首先当然是构建一棵最大生成树,然后对于一辆货车的起点和终点倍增跑$lca$更新答案就好.记得预处理倍增的时候不仅要处理走了$2^i$步后是那个点,还有这中间经过的路径权值的最小值以便之后统计答案. 再一看发现这题并没说给的图是联通的,也就是说跑了最大生成树之后可能有若干棵 ...
分类:
其他好文 时间:
2019-10-03 16:24:18
阅读次数:
75
Luogu P1600 天天爱跑步 树上差分 "题目链接" 树上问题 ~~没看出怎么差分~~ 被观察到的条件有两个 lca前一半(包括lca) $d[S_i] d[x]=w[x]$ $d[i]$表示节点深度 lca后一半 $d[S_i]+d[x] 2 d[lca(S_i,T_i)]=w[x]$ 但是 ...
分类:
其他好文 时间:
2019-10-03 16:17:51
阅读次数:
90
前置知识:线段树,链式前向星,LCA,DFS序 树链剖分通常的操作: 1.x y 的路径上修改 2.x y 的路径上查询 3. 对于 x 的子树修改 4.对于 x 的子树查询。 一般还有换根操作。树剖也也可以做LCA。 树链剖分有两个DFS 这两个DFS就是把一棵树变成一个序列。 然后就可以用数据结 ...
分类:
其他好文 时间:
2019-10-03 16:12:30
阅读次数:
81
题意: 给定一棵树 当前树的答案为 $f[1]^f[2]^f[3]^..^f[n]$ f[i]表示去除掉i点 该树的联通块数量 有m次操作 每次将两个点连一条边 然后再输出该树的答案 题目 题解: 显然一开始的时候 答案为每个点的答案为其度 所以可以处理好一开始的答案 如果将两个点连在一起的时候 那 ...
分类:
其他好文 时间:
2019-10-02 20:48:56
阅读次数:
97
看到题目中$a define N 100010 define A 15 define K 20 define INF 0x7fffffff using namespace std; struct data { int tot,num[A]; void init() { for(int i=1;i=0 ...
分类:
其他好文 时间:
2019-10-02 14:27:06
阅读次数:
74
如果题目中只有两个国家,事情就非常简单了:假设只有国家$A$和$B$,我们先找出$A$和$B$的最近公共祖先$lca$,然后找到在路径$A\longrightarrow lca\longrightarrow B$上的中点$mid$,然后分3类讨论: 1. 若$dis(A,mid)==dis(B,mi ...
分类:
其他好文 时间:
2019-10-02 12:45:56
阅读次数:
72
Description 【题目描述】: 最近有一场战争发生,Duff是战争里一名士兵,Malek是她的长官。 他们的国家——Andarz Gu有n个城市(编号为1到n),总共有n-1条道路,每条道路连接着不同的两个城市,保证两两城市间必定可以通过道路到达。 Andarz Gu总共有m个人,每个人分别 ...
分类:
其他好文 时间:
2019-10-01 16:09:27
阅读次数:
74
Kruskal Prim DJ: Spfa Trie: LCA( bz ) Treearray: Treearraycf: RMQ: Invfm: Invexgcd: Invdt: Tyfc: bdfc: CRT: jzqsm: ...
分类:
其他好文 时间:
2019-09-29 23:44:34
阅读次数:
92