- 博客(6)
- 收藏
- 关注
原创 最大利润(树型动态规划)
任意两个火车站有且只有一条路径,每个火车站最多有50个和它相连接的火车站。第一行输入整数N(≤100000),表示有N个火车站,分别用1,2,…接下来 N 行,每行一个整数表示每个站点的利润,接下来 N 一 1 行描述火车站网络,每行两个整数,表示相连接的两个站点。这是一道树形动态规划,dp[i][0]表示以i为根时,不选i的最大值,dp[i][1]为选i时的最大值;从根开始递归每一层,当选i时,不选它的子节点,则。其中j为i的子节点。最佳投资方案是在1,2,5,6这 4个火车站开饭店可以获得利润为90。
2023-01-14 16:34:36 171
原创 人品问题(树型动态规划)
选择哪K个祖先可以由测试者自己决定,但必须要满足这个要求:如果除自己的父母之外的某个祖先被选了,那么他的下一代必需要选(不允许跳过某一代选择更远的祖先,否则将失去遗传的意义)。这是一道树形动态规划,dp[i][j]表示第i个人选j个意义参见时的最大值,递归枚举每一层,w[i]为初始人品值,k为当选k个意义参考时,k从一到j枚举,dp[i][j]=max(dp[i][j],w[i]+d(dp[i][0],k)+d(dp[i][1],j-1-k))。其中,第i个数表示编号为i+1的人的人品值。
2023-01-14 16:26:39 74
原创 【图论进阶】树的最长链(树型动态规划)
这是一道树形动态规划题,d[i][1]表示以i为起点的最大值,d[i][0]表示次大值,因为可以走两边,所以要两个值;d[i][1]=max(d[i][1] ,子节点的最大值+子节点到i的距离),递归每一层子节点,找出最大的(d[i][1]+d[i][0])。乌托邦有n个城市,某些城市之间有公路连接。表示城市a和城市b之间有公路直接连接,并且公路的长度是c(c
2023-01-14 16:17:01 202
原创 聚会的快乐【树形dp】
这是一到树形动态规划题,用数组d[i][1]表示i去时的最大值,d[i][0]表示i不去时的最大值。当i去时,它的下属不去,则d[i][1]=d[i][1]+d[y][0];当i不去时,它的下属可去可不去(取最大值),则d[i][0]+=max(d[y][0],d[y][1]),其中y为i的下属。给定N个人(姓名,他幽默的系数,以及他上司的名字),编程找到能使幽默系数和最大的若干个人。接下来有N行,每一行描述一个人的信息,信息之间用空格隔开。姓名是长度不超过20的字符串,幽默系数是在0到100之间的整数。
2023-01-14 16:10:11 87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人