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

  • 相关阅读:
    加解密工具类(含keystore导出pfx)
    Java使用数字证书加密通信(加解密/加签验签)
    关于javax.crypto.BadPaddingException: Blocktype错误的几种解决方法
    产生定长的随机数
    数字证书生成--加密密/加签验签
    随机指定范围内N个不重复的数
    sql2012还原sql2008备份文件语句
    uploadify API
    海量数据处理分析
    .net经验积累
  • 原文地址:https://www.cnblogs.com/ACGO/p/7065601.html
Copyright © 2011-2022 走看看