The more, The Better
Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 735 Accepted Submission(s): 369
3 2 0 1 0 2 0 3 7 4 2 2 0 1 0 4 2 1 7 1 7 6 2 2 0 0
5 13
关键代码
void dfs(int idx)
{
for(int i=1; i<=m; i++)
dp[idx][i]=v[idx];//初始化数组
used[idx]=1;//标记,以便剪枝
for(int i=0; i<num[idx]; i++)
{
if(used[map[idx][i]]) continue;
dfs(map[idx][i]);//直到搜索到叶子节点
for(int j=m; j>=1; j--)
for(int k=1; k<=j-1; k++)
if(dp[idx][j]<dp[idx][j-k]+dp[map[idx][i]][k])
dp[idx][j]=dp[idx][j-k]+dp[map[idx][i]][k];
}
}