- 博客(5)
- 收藏
- 关注
原创 长链剖分 - 攻略(BZOJ3252)
Analysis 其实和长链剖分关系不大 就是一个贪心 按照点权和的大小划分轻重链,然后将所有的链排个序,选前k个即可 Code #include<bits/stdc++.h> #define in read() #define re register using namespace std; inline int read(){ char ch;int f=1,res=0; ...
2019-07-25 19:02:07 168
原创 矩阵快速幂 - 迷路 (SDOI2009)
Analysis 由于ti很小,我们可以将每个点都拆成若干个点然后就将边权不为1转化为边权为1了 即将图中的每个点拆成至多9个点,首先将每个点的第i个点和第i+1个点连一条权值为1的边。另外,如果原图中Eij=m,则将新图的第i个点拆成的第m点和j点的第一个点连一条权值为1的边。这样就完全转化为我们可以解决的问题形式了。 时间复杂度 O(n’^3*logT) Code #include<b...
2019-07-24 10:42:27 90
原创 斜率优化dp - 防御准备(BZOJ3156)
传送门 Analysis 比较裸的斜率优化 1.推出转移方程 定义f[i]f[i]f[i]表示在第i个位置上放守望塔的最小花费 显然最后答案在f[n]f[n]f[n]中 转移方程f[i]=minf[j]+(i−j)∗(i−j−1)/2+a[i](j<i)f[i]=min f[j]+(i-j)*(i-j-1)/2+a[i](j<i)f[i]=minf[j]+(i−j)∗...
2019-07-24 10:19:14 123
原创 长链剖分 - 秘术「天文密葬法」(COGS2652)
传送门 一句话题意 给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σai/Σbi最小 花痴三秒 啊!!!颤抖的人类 指针是真的棒(๑•̀ㅂ•́)و✧ 太神奇啦,吹爆指针大佬%%% Analysis 0/1分数规划+长链剖分维护路径点权和 分数规划的部分也就很简单了,将原式变形为∑a−k∑b≤0\sum a-k\sum b\le 0∑a−k∑b≤0 现在把每个点的点权化为...
2019-07-22 20:03:35 258
原创 长链剖分 - lxhgww的奇思妙想(Vijos)
传送门 Analysis 长链剖分(可能是重链剖分他兄弟吧) 我们预处理出每个点向上2的幂次祖先fa[k][u],每一条重链的链顶向上、向下重链长度个点。(储存在vector中,由于重链长度和不超过n,所以空间、时间都是O(n)的) 对于询问求u的k次祖先,我们可以拆成r+(k−r)次祖先,其中r是k的最高二进制位,r次祖先u·可以用fa[k][u]得到。由于性质1。所以我们可以在top[u`]...
2019-07-22 16:13:33 165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人