Go to file
Zengtudor 505d9e9c4d feat: 添加P1896.cpp解决棋盘放置问题
实现动态规划算法解决棋盘上放置不互相攻击的国王问题。使用三维数组存储状态,通过位运算检查合法位置,并计算所有可能的放置方案总数。
2025-08-30 16:42:52 +08:00
.vscode update 2025-02-09 13:50:01 +08:00
include/bits update 2025-02-07 14:36:24 +08:00
src feat: 添加P1896.cpp解决棋盘放置问题 2025-08-30 16:42:52 +08:00
.clang-format update 2025-08-08 17:40:22 +08:00
.gitignore update 2025-08-09 12:27:50 +08:00
CMakeLists.txt update 2025-08-22 20:50:15 +08:00
README.md docs: 更新README并添加动态规划算法模板 2025-08-28 16:11:01 +08:00

算法笔记

线性动态规划优化为$O(n\log{n})$方法

如果是递增序列就lower_bound

如果是递减序列就手写二分

区间dp

步骤

  1. 根据问题推出dp含义
  2. 根据规则写出dp的状态转移公式
  3. 处理边界问题

dp[i][j], dp[0][0], dp[i][0], dp[0][j], dp[i][i], dp[j][j]

  1. 编辑距离 i-1,j i,j-1
  2. 合并石子 1~k,k+1~i
  3. 网捉蛇 1~k用j-1, k+1~i用1