zoukankan      html  css  js  c++  java
  • 2017 UESTC Training for Dynamic Programming 补题

    A 这个是dp?有构造算法。

    B 状态压缩。卡时间。解决方法是二分查找可行的组合并且用记忆化dfs跳过没用的状态。

    C 矩阵快速幂加速dp。发现正面很难计数,于是从反面思考,用总数减掉。想出初始矩阵还有变换的矩阵,这道题将dp分为5类来转移。

    D 0/1背包+完全背包。在转移的时候判断当前是只能拿一件还是无数件的,然后按照常规方程转移。方向是相反的。

    E 要用滚动数组。

    F 矩阵dp。注意没法到的点的处理。

    G 求LIS。递归打印解。求字典序最小的时候,遍历整个dp数组如果符合且值最小就记录下来,继续递归。

    H 求出四个端点到任意一点的最大好感度 然后枚举所有不在边界上的点作为相遇点去求最大值

    I dp符合四边形不等式。写程序的时候我用了记忆化搜索。在搜索中如果s数组没求出来就用原始方程的值,之后再修改,所以要用引用类型。

    J 环上的博弈dp。有点意思。dp上有环,解决方案是不去理他。初始值都设为“平局”,然后从第一个点反着记忆化dfs。如果这个是必败点,回去的这个点是必胜的。如果这个点是必胜的,回去的这个点出度减为0(就是计数),则为必败点。其他的情况则不dfs。

    K 斜率dp入门。

    L 轮廓线dp入门。

    M 多重背包的二进制优化。

    N dp[j][k]表示写了j行出现k个代码的种数,dp[j][k]=(dp[j][k]+dp[j-1][k-a[i]])%mod

  • 相关阅读:
    P1478 陶陶摘苹果(升级版)
    洛谷 P1008 三连击
    1412:二进制分类
    1411:区间内的真素数
    判断素数
    关于小数
    一本通题库1159斐波那契数列
    一本通题库1161转进制
    一本通题1051
    基础算法——数据排序——冒泡
  • 原文地址:https://www.cnblogs.com/ACGO/p/7065601.html
Copyright © 2011-2022 走看看