树链剖分
文章平均质量分 86
thy_asdf
我也不知道说什么...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj3083: 遥远的国度
题意:给定一棵树,支持换根,路径权值覆盖,求子树最小。思路:求子树?上树链剖分,但是换根怎么办?我们只能通过原有信息推出换根后的答案。换根不影响路径修改,所以只要考虑子树最小值的维护。这里要分3种情况讨论1:如果询问点是当前根,直接返回整棵树的最小值。2:如果在原树中,当前根不在x的子树中,直接返回原树中x的子树最小值。判断x在不在y的子树中,只要通过dfs序即可,如果x的dfs序原创 2015-06-22 21:11:05 · 441 阅读 · 0 评论 -
bzoj2243: [SDOI2011]染色
2243: [SDOI2011]染色Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 3271 Solved: 1262[Submit][Status][Discuss]Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点原创 2015-06-22 20:22:14 · 1418 阅读 · 0 评论 -
bzoj2819: Nim
题意:树上的NIM游戏,每次取出一条链,问先手是否有必胜策略。思路:动态树or树链剖分维护链异或和,为0则没有,否则有。LCT死活就是TLE,代码就不贴了。原创 2015-06-22 20:12:57 · 500 阅读 · 0 评论 -
bzoj1036树的统计Count
单点修改,询问链最大,链和,LCT和树链剖分都可以写,不过LCT就是慢....LCT:#include#include#includeusing namespace std;const int maxn=30010;int n,m,u[maxn],v[maxn];char s[7];struct LCT{ int val[maxn],fa[maxn],c[maxn][2],原创 2015-06-22 19:47:58 · 614 阅读 · 0 评论 -
bzoj4196: [Noi2015]软件包管理器
传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=4196思路:裸裸的树链剖分。设已安装的为1,未安装的为0。对于安装操作,就是询问x到0的路径上0的个数,然后把这个路径赋为1对于卸载操作,就是询问x的子树中1的个数,然后把子树赋为0。#include#include#include#define ls (p<<1原创 2015-07-25 09:38:57 · 2507 阅读 · 2 评论 -
bzoj3672: [Noi2014]购票
传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3672思路:思路:首先不考虑树,也不考虑距离限制,假设是链上且无距离限制。设每个点到根的路径为d[i],两点之间路径长为dist(i,j)那么DP方程很显然f[i]=min(f[j]+dist(i,j)*p[i]+q[i])(i>j)f[i]=min(f[j]+d[i]原创 2015-12-16 15:13:10 · 710 阅读 · 0 评论 -
bzoj4012: [HNOI2015]开店
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4012思路:首先我们考虑一个简化的问题:给定一棵树,每次询问所有点到一个点的距离和。画个图就能知道:距离和=所有点到根的距离和+点数*u到根的距离-每个点与u的lca到根的距离*2于是问题就成了求lca的dis和那么我们先对每个点,把它到根的路径覆盖原创 2015-12-18 12:23:23 · 3489 阅读 · 0 评论
分享