码迷,mamicode.com
首页 > 其他好文 > 详细

寒武纪-1005 Travel(树形DP)

时间:2018-01-17 20:03:50      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:时间复杂度   target   div   pdf   http   hustoj   gpo   post   sub   

一、题目链接

  http://aiiage.hustoj.com/problem.php?id=1005

二、题面

  PDF:http://aiiage.hustoj.com/upload/file/20180114/20180114145400_75397.pdf

  技术分享图片

三、思路

  正赛时,我一开始写了个感觉在O(N*N*k)的时间复杂度内做了优化的代码,交上去,TLE。尝试了各种可能的情况,还是TLE。赛后,看了官方题解。如下:

  技术分享图片

  然而,2.3的“相对直观的想法”,实在是没想到一个时间复杂度在O(N*k*k)的DP算法。

  后来,队友问了其他一位AC的同学,他给我们仔细地讲了如何做DP推导。我算是听明白了。具体如下:

  1、改掉题解中dp数组的意义。dp[i][j][k]表示:在模k意义下,到达结点i距离为j的结点的个数。

  2、修改dp的含义后,设置两个dp数组:

    dp1[3001][101][101]。dp1[i][j][k]表示在以i为根的子树中,在模k意义下到达结点i的距离为j的结点的个数。

    dp[3001][101][101]。dp[i][j][k]表示,在模k意义下,到达结点i距离为j的结点的个数。

  3、dp1数组的递推式不难想到,假设当前结点为root:dp1[root][j][k] = Σdp1[soni][j - w][k]。

 

寒武纪-1005 Travel(树形DP)

标签:时间复杂度   target   div   pdf   http   hustoj   gpo   post   sub   

原文地址:https://www.cnblogs.com/565261641-fzh/p/8304145.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!