Kattis yatp(斜率优化+树分治)

题意: 2e5个点的无根树,每个点有点权,每条边有边权,定义一条简单路径的花费=这条路径两个端点点权的乘积+边权和, (一条简单路径可以包含一个点,这样花费是该点权的平方),最后问从每个点出发的最小花费 思路: ans[i]=min(a[i]*a[j]+d[i]+d[j]) -&g...

2016-10-24 19:35:32

阅读数 224

评论数 0

codechef Prime Distance On Tree(树分治+fft)

题意: 给出一棵树,边长度都是1。每次任意取出两个点(u,v),他们之间的长度为素数的概率为多大? 思路: 树分治,对于每个根出发记录边的长度出现几次,然后求卷积,用素数表查一下即可添加答案。 时间复杂度:nlognlogn#include<bits/stdc++.h> us...

2016-10-23 09:14:09

阅读数 219

评论数 0

spoj 1825 Free tour II(树分治+启发式合并)

题意: 有N个顶点的树,节点间有权值, 节点分为黑点和白点。 找一条最长路径使得 路径上黑点数量不超过K个。 思路: 设当前节点x到根的路径上黑色节点数量为deep[x],路径长度为dis[x] 将子节点按照最大deep倒序处理,利用启发式合并使得合并复杂度降为nlogn #includ...

2016-10-22 21:41:25

阅读数 268

评论数 0

Bzoj 3672 购票(树分治+凸壳维护)

题意:给出一棵有根树(1为根),边有长度。每个点u有三个属性(len[u],p[u],q[u]),每次u可以转移到u的某个祖先节点v(v满足dist(u,v)<=len[u]), 代价为p[u]*dist(u,v)+q[u]。求每个点都转移到1的代价。 思路: 树分治+cdq+维护凸...

2016-10-22 18:06:14

阅读数 417

评论数 0

Tsinsen A1486. 树(树分治+字典树)

传送门:Tsinsen A1486. 树 题意:给你一棵树(n<=1e5),每个点有一个权值和喜欢不喜欢之分,找出一条路径至少包含K个喜欢的点,而且异或和最大 思路: 树分治,同时维护字典树 字典树每个点维护一个喜欢的点数的最大值 时间复杂度:nlogn*30 #in...

2016-10-20 21:20:14

阅读数 343

评论数 0

Hdu 5469 Antonidas(只需要判断可不可行的树分治)

传送门:Hdu 5469 Antonidas 题意:给你一棵树,有n个结点,每个结点有一个字母,找出一条链,它的字母组成为s,问有没有这样的链(n<=1e5) 思路: 对于一条链(u->v),可以分成u>lca(u,v),lca(u,v)->v,又因为对于树只能处...

2016-08-31 17:44:44

阅读数 204

评论数 0

Hdu 4918 Query on the subtree(一棵树,两种操作,一种是将某个点的权值修改为v,另一种是查询距离点u不超过d的点的权值和。)

传送门:Hdu 4918 Query on the subtree 题意:给出一颗n个点的树,每个点有一个权值,有两种操作,一种是将某个点的权值修改为v,另一种是查询距离点u不超过d的点的权值和。 思路: 最多有logn层的子树 对于每个点,最多属于logn个子树,那么我们可以预处...

2016-08-30 20:59:19

阅读数 651

评论数 0

Hdu 5664 Lady CA and the graph(有n个点的树,给定根,叫你找第k大的特殊链)

传送门:Hdu 5664 Lady CA and the graph 题意: 给你一个有n个点的树,给定根,叫你找第k大的特殊链 特殊的链的定义:u,v之间的路径,且lca(u,v)!=u&&lca(u,v)!=v,且路径第k大 思路:转自http://bestco...

2016-08-30 14:35:06

阅读数 562

评论数 0

Hdu 5314 Happy King(求树上多少个点对(u,v)满足u到v的路径上点权值最大值减最小值不大于给定的K)

传送门:Hdu 5314 Happy King 题意: 给定N个点的树,点有权值,求多少个点对(u,v)满足u到v的路径上点权值最大值减最小值不大于给定的K 思路: 将点对分成经过根的和不经过根的,进行分治 每一次分治都维护点到根的最大值和最小值就可以了, 处理完一个子...

2016-08-28 15:42:06

阅读数 1044

评论数 0

poj 1741 Tree(给定一棵树,对于两个不同的节点a,b,满足dist(a,b,)<=k的点对数)

参考:树分治论文 传送门:poj 1741 Tree 题意:给你一棵N(N<=10000)个节点的带权数,定义dist(u,v)为u,v两点之间的距离,再给定一个K (1<=K<=10^9),如果对于两个不同的节点a,b,如果满足dist(a,b,)<=k,则称...

2016-08-28 11:09:07

阅读数 1109

评论数 0

提示
确定要删除当前文章?
取消 删除