摘要:有N个节点构成的电路树,编号为S的的节点为激发器,会产生电流并通过导线往下传递,给出电流在各边上传递递需要的时间w[i][j],可以花1个单位的代价将任意1条边的耗时加1,现要求电流同时到达所有叶子节点,求修改边的最小代价。 1<=N<=5E5; 1<=w[i][j]<=1E6 分析:自下而上dp,
阅读全文
摘要:有N门课程,每门课程有0或1门先修课程,课程i的学分为s[i],问选M门课能取得的最大学分是多少? 1<=N<=300; 1<=M<=300; 1<=s[i]<=20 分析:树上01背包,记dp[x][j]表示以x为根的子树最多选j门课的最大学分。对于节点x,如果要选其子节点,则必须选择x。枚举以子
阅读全文
摘要:给定一棵N个节点的苹果树,根节点编号为1。如果树枝有分叉,一定是分二叉。已知节点a与b的边权为w[a][b]。求一棵树,最多有Q条边,并且边权之和最大。 1<=Q<N<=100; 0<=w[i][j]<=3E4 分析:Q条边的树对应Q+1个节点,转化为节点数限制,可以用树上背包的方法来做。记dp[x
阅读全文
摘要:给定一棵n个结点的树,至少要选多少个点才能覆盖所有边?边的两个端点至少有一个被选中则认为覆盖。 1<=n<=1500 分析:设dp[i][0]表示以i为根的子树,不选i的答案,同理dp[i][1]为选i的答案。自下而上dp,如果选了i,那么其子节点可以选或不选;如果不选i,那么其子节点必须选。 #i
阅读全文
摘要:有一棵N个节点的树,节点i的权值为w[i],可以剪掉其中一些枝,使得剩下的树上节点权值之和最大,求最大值。 1<=N<=16000; -1E6<=w[i]<=1E6 分析:题目要求至少要选1个节点,设dp[i]表示以i为根的子树,并且选择i的最大权值和。对于i的每个子节点,可以选或不选。 #incl
阅读全文
摘要:给定一棵有N个节点的树,节点i的权值为r[i],需要选出一些不相邻的节点,使得权值之和最大,求最大值。 1<=N<=6E3; -128<=r[i]<=127 分析:自下而上dp,对于每个节点,可以选或者不选。如果选,那么其子节点不能选;如果不选,那么其子节点可以选或不选。 #include <bit
阅读全文
摘要:有n*m的矩阵,每个元素a[i][j]均为非负整数,游戏规则如下: 每轮从每行各取一个元素,共n个。经过m轮后取完所有元素。 每次取走的元素只能是该元素所在行的行首或行尾。 每轮取数都有一个分值,为每行取数的得分之和,每行取数的得分为被取走的元素值乘以2的i次方,其中i为取数轮次,从1开始。 游戏结
阅读全文