上一页 1 ··· 60 61 62 63 64 65 66 67 68 ··· 74 下一页
摘要: 【题目链接】 点击打开链接 【算法】 同样是树形DP,但是比较难,笔者做这题看了题解 令f[i][j]表示在以i为根的子树中 1.在以i为根的子树中建一些消防站 2.在节点j必须建一个消防站 3.以i为根的子树中,每个节点在满足距离不超过D的前提下,选一个子树内的节点或节点j作为“负责站” 4.节点 阅读全文
posted @ 2018-05-15 21:05 evenbao 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 树形DP 令f[i][0]表示 : 以i为根的子树中,若i不参加宴会,所能获得的最大愉悦值 f[i][1]表示 : 以i为根的子树中,若i参加宴会,所能获得的最大愉悦值 那么,如果i不参加宴会,它的下属就可以参加宴会,也可以不参加宴会,因此 : f[i][0] 阅读全文
posted @ 2018-05-15 20:44 evenbao 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 floyd求最小环 输出路径的方法如下,对于i到j的最短路,我们记pre[i][j]表示j的上一步 在进行松弛操作的时候更新pre即可 【代码】 阅读全文
posted @ 2018-05-13 23:04 evenbao 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 树形DP f[i][j]表示以i为根的子树中,选了j个叶子节点,所能带来的最大收益 不难发现这就是一个经典的背包问题,不过是在树上做背包罢了 最后,判断f[1][i]是否大于等于0,输出最大的i 【代码】 阅读全文
posted @ 2018-05-13 23:01 evenbao 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 这题描述有些繁琐,先简化一下题意 : 对于一棵无根树,删除一个节点,使得其余的联通块中,最大的联通块最小 那么,这题就很好做了 对这棵树进行一遍DFS,求出每个节点为根的子树的大小(记为size),再求出删除节点后,子树中最大的联通块的大小(记为mx) 那么,删 阅读全文
posted @ 2018-05-13 22:56 evenbao 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 我们知道,一棵树上离某个节点最远的节点,可能是经过它的祖先,再到那个祖先的某个孩子,或者,是它的那颗子树中,离它最远的一个节点,就不难想到以下算法 : 第一遍DFS,搜出每个节点的子树中离它距离最远的孩子的距离和所经过的儿子,离它次远的孩子的距离和所经过的儿子 阅读全文
posted @ 2018-05-13 22:47 evenbao 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 SPFA + SLF / LLL 优化 【代码】 阅读全文
posted @ 2018-05-13 12:12 evenbao 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 树链剖分 每个宗教建一棵线段树,注意数据量大,要动态开点 【代码】 阅读全文
posted @ 2018-05-12 11:04 evenbao 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 这题有一个性质 : 位于顶层的干草堆可以满足宽度最小且高度最高 根据这个性质,用单调队列优化DP,即可 【代码】 阅读全文
posted @ 2018-05-12 09:41 evenbao 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 【题目链接】 点击打开链接 【算法】 令cost(i,j) = 第i天到第j天走相同的路线,路线长度的最小值 那么,只需筛选出第i天到第j天可以装卸货物的码头,然后将这些码头之间连边,跑弗洛伊德(或其它最短路算法),即可 然后,我们用f[i]表示前i天,总成本最小是多少,显然有 : f[i] = m 阅读全文
posted @ 2018-05-11 21:10 evenbao 阅读(131) 评论(0) 推荐(0) 编辑
上一页 1 ··· 60 61 62 63 64 65 66 67 68 ··· 74 下一页