数据结构
highkill
这个作者很懒,什么都没留下…
展开
-
codeforces 739c Alyona and towers
题意给定一个序列,求最长的严格先递增后递减区间长度。有m次区间加修改,每次修改后输出答案。思路线段树。diff[i] = a[i] - a[i - 1],diff[1] = 0.这样每次的区间加就就变成了单点修改,即l点加k,r+1点减k。需要注意当l为1或者r为n时无需修改。原创 2016-12-01 15:38:43 · 981 阅读 · 0 评论 -
NEU 11月组队赛D题 QUERY ON THE TREE
题意给定一个树,每个点有个权值v,vi=v(fa)*i%20161119,m个询问u,k,问以u为根的子树中abs(vj - k)最小值。connection思路先dfs一遍求出dfs序和每个节点的权值,将问题转化为求区间中大于k的最小值和小于k的最大值。离线线段树即可。原创 2016-11-27 20:33:18 · 359 阅读 · 0 评论 -
codeforces 739b Alyona and a tree
题意给定一棵树,每个节点有一个值a(u),每条边有一个权值w,定义节点u控制节点v当且仅当dis(u,v) <= a(v)。要求每个节点控制的点数。链接思路首先求出每个节点到根节点的前缀边权和pre[u],那么dis(u,v) = dis[v] - dis[u] -> dis[v] - dis[u] <= a[v] -> dis[v] - a[v] <= dis[u].问题转化为了求树上节点的子原创 2016-11-27 20:21:29 · 897 阅读 · 0 评论