摘要:
Luogu4220 [WC2018]通道 边分治 考虑如果是两棵树,对一棵树边分治,同时在另一棵树上建虚树统计答案,套路和[CTSC2018]暴力写挂相同。 一开始想不到好的办法,直接对第二棵树的虚树再次边分治,同时在第三棵树上建虚树,统计答案,时间复杂度$O(n \log^2 n)$。 结果$T$ 阅读全文
摘要:
Luogu4565 [CTSC2018]暴力写挂 边分治 边分治与点分治相似,每次选择断开后得到的两棵子树大小的最大值最小的边,可以与点分治寻找重心类比。 但是对于一般树来说,它并不一定有一条边具有使断边后最大子树大小呈指数级下降的特质(比如$n-1$个点连向$1$个点)。 我们可以利用虚点,将一棵 阅读全文
摘要:
Luogu3920 [WC2014]紫荆花之恋 动态点分治 题目给出的条件是: \[ dist(i,j) \le r_i+r_j \] 转换可得: \[ dist(i,j)-r_j \le r_i \] 因此可以考虑用动态点分治来解决这道题。 添加新节点$x$,更新答案时还是动态点分治的套路,由于我 阅读全文
摘要:
Luogu2056 [ZJOI2007]捉迷藏 这道题是最远点对问题,考虑如何用点分治维护最远点对。 那么对于每一个点,我们只需要找到最长链和次长链(如果有的话),由于需要动态维护点分树,我们需要数据结构,可删除堆可以胜任这一任务(以下提到的堆均为可删除堆,关于可删除堆的操作细节,这里就不谈了,现在 阅读全文
摘要:
$O(n \log n)$预处理 $O(1)$询问 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #define N 500005 using namespace std; int n,m,s,x,y; 阅读全文
摘要:
动态点分治 \(update\):$2020.10.20$发现以前对动态点分治的理解是错误的,进行更正。 由于蒟蒻太逊,现在才开始学动态点分治,写一个$blog$吧。 动态点分治是利用点分治的过程,建成一颗由子树重心连接而成的点分树,这棵树的高度为$\log n$级别的,因此可以通过暴力跳父亲完成修 阅读全文
摘要:
https://www.luogu.com.cn/problem/P4172 $LCT$动态维护最小生成树裸题,但是我用了指针版$LCT$,$RE$到飞起 考虑这道题是删边,我们可以改成加边进行操作,边权仍然可以按照套路链一个点当做边 为了防止访问空指针,我们可以把根节点的父亲指向一个结构体$rt$ 阅读全文
摘要:
https://www.luogu.com.cn/problem/P4779 \(Code:\) #include<bits/stdc++.h> #define N 100005 #define M 200005 #define INF 2000000000000000 using namespac 阅读全文
摘要:
https://www.luogu.com.cn/problem/P1932 待补:压位高精,多项式除法优化除法、取模 高精度除可以钦定选取前几位后再进行除法(也许常数略小?) Luogu1932 A+B A-B A*B A/B A%B Problem 高精度合集(NTT优化乘法,vector,带低 阅读全文
摘要:
\[ \sum_{i=1}^n i=\frac{n(n+1)}{2}\\ \sum_{i=1}^n i^2=\frac{n(n+1)(2n+1)}{6}\\ \sum_{i=1}^n i^3=\frac{n^2(n+1)^2}{4}\\ \sum_{i=1}^n i^4=\frac{n(n+1)(2 阅读全文