看完题目先模拟一下样例,能摸出很多性质
一般一道题就三种切入口
先考虑树形dp
注意树形背包的复杂度是$nV$的
如果时间复杂度过高
树形dp的思考方式一般是
考虑叶子向其父亲的贡献(一片两片三片地递增地考虑)
然后再逐层往上考虑,总结性质
如果题目中有操作之类的,考虑树链剖分维护
询问路径的最值或方案数之类的,考虑用路径拼接,有两种常见方法
图的常用方法不多,大概就以下几种
上述方法其实就是把图问题转化为树问题求解
如果有限定恰好几步或是多层结构一样的图,考虑矩阵快速幂优化(把邻接矩阵相乘k次就是走了k步后的距离矩阵)
原文:https://www.cnblogs.com/linzhuohang/p/13914063.html