寒武纪-1005 Travel(树形DP)

一、题目链接

  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]。

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

时间: 2024-07-30 22:11:10

寒武纪-1005 Travel(树形DP)的相关文章

hdu-4118 Holiday's Accommodation(树形dp+树的重心)

题目链接: Holiday's Accommodation Time Limit: 8000/4000 MS (Java/Others)     Memory Limit: 200000/200000 K (Java/Others) Problem Description Nowadays, people have many ways to save money on accommodation when they are on vacation.One of these ways is exc

hdu4118 树形dp

http://acm.hdu.edu.cn/showproblem.php?pid=4118 Problem Description Nowadays, people have many ways to save money on accommodation when they are on vacation. One of these ways is exchanging houses with other people. Here is a group of N people who wan

hdu3586 树形dp+二分求解

http://acm.hdu.edu.cn/showproblem.php?pid=3586 Problem Description In the battlefield , an effective way to defeat enemies is to break their communication system. The information department told you that there are n enemy soldiers and their network w

算法提高 金属采集_树形dp

算法提高 金属采集 时间限制:1.0s   内存限制:256.0MB 问题描述 人类在火星上发现了一种新的金属!这些金属分布在一些奇怪的地方,不妨叫它节点好了.一些节点之间有道路相连,所有的节点和道路形成了一棵树.一共有 n 个节点,这些节点被编号为 1~n .人类将 k 个机器人送上了火星,目的是采集这些金属.这些机器人都被送到了一个指定的着落点, S 号节点.每个机器人在着落之后,必须沿着道路行走.当机器人到达一个节点时,它会采集这个节点蕴藏的所有金属矿.当机器人完成自己的任务之后,可以从任

洛谷 P2986 [USACO10MAR]Great Cow Gat…(树形dp+容斥原理)

P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat… 题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of course, she would like to choose the most convenient location for the gathering to take place. Each cow lives in on

HDU ACM 4044 GeoDefense ->树形DP+分组背包

题意:地图是一个编号为1-n的节点的树,节点1是敌方基地,其他叶节点是我方基地.敌人基地会出来敌人,为了防止敌人攻进我方基地,我们可以选择造塔.每个节点只能造一个塔,节点i有ki种塔供选择,价值和攻击力为price_i, power_i,攻击力power_i是让敌人经过这个节点时让敌人的HP减少power_i点.因此从敌人基地到我方任意一个基地的路径,这条路径上所有塔的攻击力之和,就是这个基地的抵抗力. 敌人攻击路径不确定,为了保护我方所有基地,需要确定所有基地中抵抗力最低的一个.我方只有数量为

hdu 4118 Holiday's Accommodation 树形dp

Holiday's Accommodation Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4118 Description Nowadays, people have many ways to save money on accommodation when they are on vacation.One of these ways is exchanging

hdu 4044 GeoDefense (树形dp+01背包)

GeoDefense Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 663    Accepted Submission(s): 267 Problem Description Tower defense is a kind of real-time strategy computer games. The goal of towe

HLG1475国王的宴会【树形DP】

大意: 你知道国王喜欢热闹,所以你希望能邀请尽量多的人,但是做为直接上下级关系的两个人直接出现在宴会上的时候会显得很尴尬,所以不能同时请有上下级关系的两个人. 国王是宴会的主办方,也是这个王国的最高领袖,所以必须到场. 为了能为宴会准备的更好,你需要知道整个宴会最多可以邀请多少宾客. 分析 : 树形DP dp[x][0]代表x及其子树在不选x的情况下的最优解 dp[x][1]代表x及其子树在选x的情况下的最优解 那么  dp[x][0] = sum(max(dp[y][0], dp[y][1])