点分治
_Ark
这个作者很懒,什么都没留下…
展开
-
某模拟赛C题 树上路径统计 (点分治)
题意 给定一棵有n个节点的无根树,树上的每个点有一个非负整数点权。定义一条路径的价值为路径上的点权和-路径上的点权最大值。 给定参数P,我!=们想知道,有多少不同的树上简单路径,满足它的价值恰好是P的倍数。 注意:单点算作一条路径;u!=v时,(u,v)和(v,u)只算一次。 题解 树上路径统计,解法是点分治。点分的时候求出根到每个点路径最大值和权值和。排一序,然后开个桶,就能计算了。去重就套路的...原创 2019-12-21 11:16:33 · 403 阅读 · 0 评论 -
树的点分治 板题 Luogu P3806
给定一棵有n个点的树 询问树上距离为k的点对是否存在。 AC code: #include<bits/stdc++.h> using namespace std; const int MAXN = 10005; const int MAXM = 105; const int MAXK = 10000005; int n, m, q[MAXM]; int fir[MAXN], t...原创 2018-11-06 18:50:51 · 198 阅读 · 0 评论 -
BZOJ 3924 / Luogu P3345 [ZJOI2015]幻想乡战略游戏 (动态点分治/点分树)
题意 树的结构不变,每个点有点权,每一条边有边权,有修改点权的操作,设xxx为树中一点.求∑idist(x,i)∗a[i]\sum_idist(x,i)*a[i]i∑dist(x,i)∗a[i]的最小值 分析 我们把补给站叫做决策点,那么假设当前最优决策点为uuu.把uuu看作根节点,我们考虑将决策点从uuu转到儿子vvv,先假设sum[i]sum[i]sum[i]表示iii子树内点权之和,那么...原创 2019-03-20 16:14:00 · 237 阅读 · 0 评论 -
BZOJ 3435 / Luogu 3920 [WC2014]紫荆花之恋 (替罪羊树 动态点分治 套 Treap)
题意 略 分析 引用PoPoQQQ的话 吾辈有生之年终于把这道题切了。。。QAQ (蒟蒻狂笑) Orz PoPoQQQ,我又抄PoPoQQQ的题解啦 … 感觉看了PoPoQQQ的代码,腰也不酸了,腿也不疼了,动态树分治Treap替罪咩啥的全都会啦 正经的… 突然发现有旋Treap没那么难写 学习了一波C++语法,第一次用指针,什么new/deletenew/deletenew/delete也...原创 2019-03-22 20:08:36 · 172 阅读 · 0 评论 -
BZOJ 2599: [IOI2011]Race(点分治板题)
我也就只会做做板题了… 记得清零数组的时候子树遍历清零,否则会T CODE #include<bits/stdc++.h> using namespace std; inline void read(int &num) { char ch; int flg = 1; while(!isdigit(ch=getchar()))if(ch=='-')flg = -flg; fo...原创 2019-04-05 10:05:56 · 178 阅读 · 0 评论 -
BZOJ 2152 / Luogu P2634 [国家集训队]聪聪可可 (点分治/树形DP)
题意 一棵树,给定边权,求满足两点之间的路径上权值和为3的倍数的点对数量. 分析 点分治板题,对每个重心求子树下面的到根的距离模3分别为0,1,2的点的个数就行了. CODE #include<bits/stdc++.h> using namespace std; char cb[1<<15],*cs=cb,*ct=cb; #define getc() (cs==ct&am...原创 2019-03-28 16:36:04 · 147 阅读 · 0 评论 -
BZOJ 3451Normal (点分治+FFT)
题意 BZOJ3451 题解 Orz yyb题解 CODE #pragma GCC optimize ("O2") #include <bits/stdc++.h> using namespace std; const double Pi = acos(-1.0); const int MAXN = 30005; int fir[MAXN], to[MAXN<<1], n...原创 2019-09-14 16:30:32 · 240 阅读 · 0 评论