zoukankan      html  css  js  c++  java
  • 动态规划经典问题

    只是谈谈看题感悟而已,并没有写题,则跟不用说刷题了。

    在看了算法竞赛入门经典,也就是刘汝佳写的那本(一)中动态规划专题,理会甚多。

    动态规划问题,一般可以看为DAG问题的,有许多类动态规划原来存储的是bool 的true或false只需改一改题意就变成了,什么保证什么什么情况下,什么最大,什么最小的问题,那就只需将bool改为int就可以了

    有一类点集配对问题就是说有n个点,两两配对,使得到的权值总和最大或者最小,一类的问题,数据范围是20的,这样有一个小技,因为最终所有点都是需要配对的,所以第一次枚举的时候只需枚举一个点的情况就可以了,如果用一个一维循环来枚举第一个点的匹配点,已经包涵在任意一个点的匹配中,因此是重复的,可以优化一个n。

    几个小点,LCS中的滚动数组空间优化,最大连续和的O(n)算法,TSP问题是十分经典的一类问题,一般dp也就是和暴力没什么区别,时间复杂度也需要2^n甚至更高,这里启发式搜索就比较厉害了,10^6的数据只需要跑1h就可以跑出了,这个估计函数的选举非常重要,要保证正确率要高。

    矩阵乘法的(MCM)问题一种简单的区间类DP,O(n^3),还有一类(OBST)问题,最优排序二叉树问题,题目是给你一颗排序二叉树,.........。题目不是关键,也是枚举根节点,然后求一次树上DP就可以了

    这里本来的时间复杂度是O(n^3),有什么优化的方法吗?答案是有的,可以用四边形优化来解决,降低一个n,然后就变成了,O(n^2)的复杂度,具体还是去看论文吧,这个讲不太清楚,而且石子合并那里是讲到过的。 

  • 相关阅读:
    Android开发实例关键点讲解系列之一:Eclipse中建立Android工程
    类欧几里得小记
    【清华集训2017模拟12.09】塔
    【51nod1792】Jabby's segment tree
    【51nod1220】约数之和
    【51nod 2026】Gcd and Lcm
    【JZOJ5180】【NOI2017模拟6.29】呵呵
    2017noip总结
    2017.11.7总结
    Codeforces Round #395 Div.1 C pacifist【JZOJ5449】Pacifist
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/7228307.html
Copyright © 2011-2022 走看看