摘要:
Manhattan Cafe dp 前缀和优化 很容易想到 $dp$ 的状态 $dp[i][j][k]$ 表示前 $i$ 个点,$r_x$ 与 $p_x$ 的差值和为 $j$,$r_x$ 与 $q_x$ 的差值和为 $k$ 这样的话直接枚举第 $i$ 组点中,我们取的点的位置,能够做到 $O(D)$ 阅读全文
摘要:
最大半连通子图 tarjan 缩点后计算弱连通图,相当于 $DAG$ 图中点最多的路径,计算最大弱连通子图的时候就检查每个子节点的最长路径数量 注意该题的答案计算与边有关,要去重边 #include <iostream> #include <cstdio> #include <vector> #in 阅读全文
摘要:
Warp dp 状态优化 一开始想到的状态为:$dp[i][x][y]$,第 $i$ 步走到 $(x,y)$ 的方案数,但是发现状态转移非常难写,原因是坐标计算非常大 后来可以优化一下 $dp$ 的状态:$dp[i][j][k]$ 表示第 $1,2,3$ 个方向走了 $i,j,k$ 步 的方案数 这 阅读全文