dp废物学会了记录路径

在二维dp里面,得到了dp值,那么反着变量,如果当前的dp值等于ans,那么当前值就是满足的解,并且ans--。
比如在最长上升子序列里面
ans就是最长上升子序列的长度。
因为如果当前值就是ans的话,表示当前值是更新后的值。

printf("%d
", ans);
std::vector<int> v;
for(int i = tot; i >= 1; i--) {
    if(dp[i] == ans) {
        ans--;
        v.push_back(x[i].id);
    } 
}
reverse(v.begin(), v.end());
for(int i = 0; i < v.size(); i++)
    printf("%d
", v[i]);
原文地址:https://www.cnblogs.com/Emcikem/p/13991653.html