树链剖分

http://www.lydsy.com/JudgeOnline/problem.php?id=1036

https://oi.men.ci/tree-chain-split-notes/

点分治

https://oi.men.ci/tree-divide-notes/

https://www.luogu.org/blog/chengni5673/dian-fen-zhi

对于一棵树,统计长度为 x 的路径的路径数.

点分治: 找到一个点为根,统计答案,然后将它的子树分离,分别进行同样的操作,继续,直到只剩下一个点. 其中选择的根是有要求的,为了保证时间复杂度,我们需要尽量的让子树的大小相近,所以每一次我们选择的根都最好是当前这棵树的重心.

图论常见技巧

  • 反向建边
  • 虚点连边

Graph 1. 求各点到指定点集的最短距离的优化方法

(a)

(b)

Graph 2. 二分完全图建边的优化方法

  • 建边的线段树优化

Graph 3. 建边的线段树优化

  • 拆点
  • 分层图解决刁钻图上操作

分层图就是有多维状态的有边长图,比起正常的最短路转移多了一种跨维度转移的状态转移. 一般都是舍去某边长度,最多舍多少次 (次数较少).

[JLOI2011] 飞行路线: Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在 n 个城市设有业务,设这些城市分别标记为 0 到 n-1,一共有 m 种航线,每种航线连接两个城市,并且航线有一定的价格。Alice 和 Bob 现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多 k 种航线上搭乘飞机。那么 Alice 和 Bob 这次出行最少花费多少?

分层图可以很巧妙的解决这个问题. 想象你每次使用免费航线之前和之后分别存在于不同的时空 (不同的层) 里面,每使用一次免费航线,你就从这个时空进入了另一个时空 (免费). 根据以上思想建图,一共建 k+1 层图,相邻的两层图中进行连边 (单向边,距离为 1). 然后跑 Dijkstra 即可.

gaotianyu1350

图论的注意点

  • 无向图/有向图
  • 自环、重边
  • 环(缩点)
  • 负环、零环

13 October的更多相关文章

  1. centos各版本信息

    CentOS version Architectures RHEL base Kernel CentOS release date RHEL release date Delay (days) 2.1 ...

  2. Android学习系列(39)--Android主题和样式之系统篇(上)

    [基于最新的Android4.4的源码分析] 每家公司或者每个移动团队无不想开发出一套自己的UI框架,融入自己的设计和特性,这必然会去修改android的ui.所以,学习和理解android的UI设计 ...

  3. CentOS和Redhat发行版linux内核版本的对应关系

    由于Redhat和CentOS的发行版本现在众多,所以我们应该知道CentOS和Redhat及linux内核之间版本的对应关系对维护系统还是很有帮助的.对应的列表如下: Redhat 9.0————— ...

  4. 支持不同Android设备,包括:不同尺寸屏幕、不同屏幕密度、不同系统设置

    Some of the important variations that you should consider include different languages, screen sizes, ...

  5. xmlhttp

    File an issue about the selected textFile an issue about the selected text XMLHttpRequest Living Sta ...

  6. Fix catalyst driver in Ubuntu 13.04 / 13.10

    Fix catalyst driver in Ubuntu 13.04 / 13.10(墙外文章备份) 1. Introduction I found lots of people strugglin ...

  7. 【13】python time时间模块知识点备查

    表示时间的三种形式 # 时间模块 '''UTC(世界协调时间):格林尼治天文时间,世界标准时间,在中国来说是UTC+8DST(夏令时):是一种节约能源而人为规定时间制度,在夏季调快1个小时 时间的表示 ...

  8. Ural State University Internal Contest October'2000 Junior Session

    POJ 上的一套水题,哈哈~~~,最后一题很恶心,不想写了~~~ Rope Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7 ...

  9. Leetcode problems classified by company 题目按公司分类(Last updated: October 2, 2017)

    All LeetCode Questions List 题目汇总 Sorted by frequency of problems that appear in real interviews. Las ...

随机推荐

  1. AlertManager警报通知 E-mail 微信 模板

    # AlertManager警报通知 E-mail 微信 模板 #AlertManager配置 #alertmanager.yml # 全局配置项 global: resolve_timeout: 5 ...

  2. JQuery关于span标签的取值赋值

    span取值赋值方法有别于一般的页面元素.JQ://赋值$("#spanid").html("hello world") //取值$("#spanid ...

  3. Log4net使用(二)

    转:http://www.cnblogs.com/basilwang/archive/2006/06/09/421868.html Log4net同时按照日期和大小生成RollingFile和访问Sy ...

  4. 第四周实验报告&实验总结

    试验报告2 写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求该类 ...

  5. BZOJ1185[HNOI2007] 最小矩形覆盖(旋转卡壳)

    BZOJ1185[HNOI2007] 最小矩形覆盖 题面 给定一些点的坐标,要求求能够覆盖所有点的最小面积的矩形,输出所求矩形的面积和四个顶点的坐标 分析 首先可以先求凸包,因为覆盖了凸包上的顶点,凸 ...

  6. c# winfrom程序中 enter键关联button按钮

    1,关联按钮上的Key事件             在按钮上的keypress,keydown,keyup事件必须要获得焦点,键盘上的键才能有效.        private void btnEnt ...

  7. NGUI的HUD Text的扩展插件学习--(UIFollowTarget)的使用

    一,我们先导入NGUI_HUD_Text_v1.11包,导入包后会在项目生成一个这样的文件夹 二,我们添加一个cube,给cube添加一个空的游戏对象 二,我们使添加一个label,然后给label添 ...

  8. Vue.js——60分钟快速入门 一

    来源:https://www.cnblogs.com/keepfool/p/5619070.html Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组 ...

  9. 初入vue.js(1)

    本文章属于个人在学习vue的随笔,留作与大家分享,技术交流之用,如果有错误,请大家多多指正.谢谢 首先说一下vue的使用方式: vue的使用方式一共有两种,第一种是直接在官网上下载vue.js的文件, ...

  10. fullpage.js版本3.0.5报错问题(licenseKey)

    在文件里搜索licenseKey,删除!不会对程序造成任何影响