LCA

倍增

f[i][j]代表i的2^j级父亲

f[i][j]=f[f[i][j-1]][j-1]

有了f数组,如何计算“u向上跳k步到达哪个点”?

对k作二进制分解,枚举所有二进制位。

如果第i位为1,那么令u=f[u][i]

O(nlogn) 预处理

	for(int i=1;i<=n;i++)
f[i][0]=fa[i];
for(int j=1;j<=20;j++)
for(int i=1;i<=n;i++)
f[i][j]=f[f[i][j-1]][j-1];

树上DP

维护树上信息的dp

F[i]代表以i为根的连通块的最大点权和

F[i]+=max(f[j],0)(j是i的儿子)

void dfs(int fa,int x){//DP
f[x]=v[x];
for(int i=head[x];i;i=nxt[i]){
if(to[i]==fa)
continue;
dfs(x,to[i]);
f[x]+=max(f[to[i]],0);
}
ans=max(ans,f[x]);
}

最新文章

  1. Yii rbac原理和实践
  2. robot framework 安装配置
  3. XAMPP(Linux版-x86兼容)官网下载
  4. 中文分词系列(二) 基于双数组Tire树的AC自动机
  5. Epoll之ET、LT模式
  6. YZOI回忆录&amp;&amp;YZOI3.0介绍&amp;&amp;某些资源的分享
  7. 使用JFinal框架中Validator
  8. 闲来无事,把node又拾起来看看
  9. linux子系统ubuntu16.04安装使用xrdp当远程桌面
  10. Xcode 8.X Command Line Tools
  11. [administrative][archlinux][netctl][wpa_supplicant] 查看WIFI链接信息
  12. RocketMQ 事务消息
  13. C++ 表示一个区间值得方法
  14. Android 为库(library)创建不同编译环境
  15. nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)
  16. 《Java程序设计》实验三(敏捷开发与XP实践)20155214 实验报告
  17. 【BZOJ】1088: [SCOI2005]扫雷Mine(递推)
  18. leetcode-对称二叉树
  19. thinkjphp 模板中获取url中的action
  20. grads 新老版本目录对比

热门文章

  1. 深入 Laravel 内核之外观模式(门面模式)
  2. win 10 遇到某文件一直在占用导致无法关闭,或者去任务管理器找不到服务怎么办?具体解决
  3. spring controller获取web前端post数据乱码解决
  4. 【Spring专场】「MVC容器」不看源码就带你认识核心流程以及运作原理
  5. Ultimaker2+使用指南
  6. Go语言:包管理基础知识
  7. qt之线程
  8. 返回值ModelAndView
  9. IoC容器-Bean管理XML方式(注入外部bean)
  10. 在 Prim 算法中使用 pb_ds 堆优化