树形dp
sillyf
这个作者很懒,什么都没留下…
展开
-
BZOJ 4033: [HAOI2015]树上染色
树形dp f[i][j]表示以i为根时它的子树中有j个点为黑点的最大收益,那么将根从x变为y时,产生的贡献就是 (x及其子树中的黑点数*y及其子树中的黑点数+x及其子树中的白点数*y及其子树中的白点数)*边权v 记得开longlong #include #include #include #define LL long long #define N 2005 using namesp原创 2017-07-11 20:47:29 · 382 阅读 · 0 评论 -
BZOJ 1131: [POI2008]Sta
树形dp,水 (要是难的话我就做不来了,折腾了好久还是换了一种转移方式) #include #include #include #define N 1001005 #define LL long long using namespace std; int read() { int a=0,f=1;char c=getchar(); while(c'9'){if(c=原创 2017-07-07 15:33:40 · 251 阅读 · 0 评论 -
51nod 1378 夹克老爷的愤怒[贪心][树形dp?]
假如是链上的话就直接贪心搞,每隔2∗k2*k放一个守卫 现在搞到树上 f[i]表示节点i的子树已经全受控制,还可以向上控制f[i]个单位 那么假如当前节点和它的子树节点已经相差为2*k个单位则要加一个家丁 如果当前节点的子树之间可以互相覆盖也是要考虑进去的…假如不能覆盖就要用当前最小的那个了… //感觉叙述不清啊…反正我自己知道怎么做就好了,5个点头盾看题解换10个还是很值的#includ原创 2017-10-24 21:06:45 · 314 阅读 · 0 评论