DP 打印方案

摘自《算法竞赛入门经典(第2版)》 P265

保留以后做参考:

void print_ans(int *d, int s)
{
    for(int i = 1; i <= n; i++)
        if(S >= V[i] && d[S] == d[S - V[i]] + 1)
        {
            printf("%d", i);
            print_ans(d, S - V[i]);
            break;
        }
}

 

或者每次更新DP的同时, 更新一个记录方案的数组next[]

posted @ 2016-04-20 18:40  筱陌  阅读(261)  评论(0编辑  收藏  举报