首页 > 其他 > 详细

做题方法总结

时间:2020-11-02 14:39:51      阅读:33      评论:0      收藏:0      [点我收藏+]

看完题目先模拟一下样例,能摸出很多性质

一般一道题就三种切入口

  1. 直接做
  2. 考虑题目是否有单调性或贪心性
  3. 用数据结构来加速模拟过程或是维护修改等

先考虑树形dp

注意树形背包的复杂度是$nV$的

如果时间复杂度过高

树形dp的思考方式一般是

考虑叶子向其父亲的贡献(一片两片三片地递增地考虑)

然后再逐层往上考虑,总结性质

如果题目中有操作之类的,考虑树链剖分维护

询问路径的最值或方案数之类的,考虑用路径拼接,有两种常见方法

  1. 树形dp,开一个维度标记已经决定了多少个端点
  2. 每一个点从儿子那继承一堆这个点为起点,终点在子树内的路径,然后拼接

图的常用方法不多,大概就以下几种

  1. tarjan
  2. 最短/长路
  3. 最小/大生成树
  4. 并查集

上述方法其实就是把图问题转化为树问题求解

如果有限定恰好几步或是多层结构一样的图,考虑矩阵快速幂优化(把邻接矩阵相乘k次就是走了k步后的距离矩阵)

 

做题方法总结

原文:https://www.cnblogs.com/linzhuohang/p/13914063.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!