关闭
当前搜索:

[bzoj4987]Tree

题目大意从前有棵树。 找出K个点A1,A2,…,Ak。 使得∑dis(AiAi+1),(1<=i<=K-1)最小。DP结论一:一定是找一个大小为k的联通子树。 结论二:最优答案一定是所有边权和*2-直径长度。 我们把直径的两个端点叫做关键点。 然后不妨dp,设f[i,j,k]表示子树i里选择了一个包含i的联通子树,含有j个点,选择了k个关键点的最小值。 合并时用枚举size法合并复杂度是...
阅读(34) 评论(0)

题目大意一颗点权树,有多少种将树划分成若干条路径的方法,使得每条路径点权和非负?做法不妨设f[i]表示i子树里全部成功覆盖方案数,g[i]表示i子树里除了i全部成功覆盖方案数。 g就是各个子树的f乘积。 f可以枚举lca穿过当前点的一条路径,设为j->k,那么j和k都贡献g,其余挂着的子树贡献f,乘起来即可。 这样太慢了。 考虑简单问题。 如果路径是j->i怎么做呢? 可以尝试对每个子树...
阅读(256) 评论(0)

[arc063e]Integers on a Tree

题目大意一颗点权树,相邻节点点权差绝对值为1。 现在一些点点权已确定,构造一种方案。做法自下而上推出每个节点点权区间范围。 为空则无解,同时如果儿子间对该点奇偶性要求不同也无解。 然后接下来只需自上而下构造,只要和父亲相差1,且点权在区间范围内一定可以合法。#include #include #define fo(i,a,b) for(i=a;i<=b;i...
阅读(57) 评论(0)

[arc079f]Namori Grundy

题目大意一个有向弱联通环套树。 一个点的sg值等于出边连向点的sg值的mex。 试问是否有办法给每个点分配sg值?做法先把环上每个点i处理出两个值b[i]和c[i],b[i]表示其所连向的环上点j的sg值sg[j]如果不等于b[i],那么sg[i]=b[i],否则sg[i]=c[i]。 任找一条环边u->v,枚举sg[u]=b[u]或c[u]两种情况,有一种合法即可,否则不可能合法。#incl...
阅读(90) 评论(0)

[agc009b]Tournament

前言简单题。题目大意若干轮比赛,每个人在某一轮可以参赛,和另外一个人pk,输的人淘汰。 最后1是冠军,已知其余每个人输给了谁,请问最少设置多少轮比赛?做法你显然可以根据每个人输给了谁建一颗树,然后处理f[x]表示x淘汰所有输给他的人所需要的最小轮数。 转移很简单,根据儿子的f排序,然后详见代码(不会说)。#include #include #define f...
阅读(83) 评论(0)

[CF538E]Demiurges Play Again

题目大意懒得写题解同51nod树上的博弈#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=200000+10; int f[maxn],d[maxn],h[maxn],go[maxn],next[maxn]; int i,j,k,l,...
阅读(113) 评论(0)

[hdu5181]numbers

题目大意把1~n顺序入栈,你可以决定出栈序列。 有m组关系,每组关系限制j要在k之前出栈。DP首先有个坑点请先判掉,就是存在限制j=k就输出0。。 我们考虑入栈出栈序列。 1入栈,写一个1。 2入栈,写一个2。 3入栈,写一个3。 3出栈,写一个3。 类似这样可以写出一个进出栈序列。 如果我们在最前和最后都加1个0,还可以看做是一个括号序列,也就是一颗以0为根节点的树。 这颗树有以...
阅读(172) 评论(0)

无心行挽

题目描述“What’s left to do when we’ve lost all hope?” “若内心万念俱灰,是否注定无心行挽?” ——来自网易云音乐 不必做好输掉一切的准备。 所以,无畏结局。 在尽头,已经不能再做什么,来挽回。 在尽头,所有的一切都走向简化,没有了重复,没有了错杂,只剩下一片废墟。 就是说,世界曾是一副错杂的无向图,而在尽头,它已成为一个没有环的无向连通图,...
阅读(240) 评论(0)

[bzoj4835]遗忘之树

题目描述定义任意两点之间存在唯一路径的无向图是树。对于一棵n个点的树,如果删掉某个点u之后每个连通块的大小均不 超过n/2,那么称u为这棵树的重心。现在有一棵n个点的树T,利用过程P来构造一个n个点的有向图G,初始G没有边 。现在对T调用过程P,P的内容如下: 1:删去u,对每个连通块递归调用过程P; 2:对每个连通块,如果它的标号最小的重心为v,那么在图G中连一条u到v的有向边。 3:现...
阅读(156) 评论(0)

[bzoj4033]树上染色

题目描述有一棵点数为N的树,树边有边权。给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并 将其他的N-K个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。 问收益最大值是多少。DP首先贡献很恶心,但我们可以这样考虑,只考虑每条边的贡献。 设f[i,j]表示以i为根的子树中染黑了j个点的最大贡献,这里只考虑了子树中每条边以及i的父亲...
阅读(401) 评论(0)

奶酪

题目描述CJY很喜欢吃奶酪,于是YJC弄到了一些奶酪,现在YJC决定和CJY分享奶酪。 YJC弄到了n-1块奶酪,于是他把奶酪挂在了一棵n个结点的树上,每根树枝上挂一块奶酪,每块奶酪都有重量。 YJC和CJY决定这样分奶酪:首先砍掉一根树枝,把树分成两部分,每人取一部分,然后各自在自己取的那部分树上选择一条路径并取走路径上的奶酪,然后把剩下的奶酪拿去喂老鼠。 两人都想让自己取走总重量尽量大的奶...
阅读(187) 评论(0)

[bzoj3727]PA2014 Final Zadanie

题目大意一颗n个节点的树。 bi=∑nj=1aj∗dis(j,i)bi=\sum_{j=1}^naj*dis(j,i) 给定b,请求出a。好题设size表示子树的a值和。设x表示整颗树a值和。 那么对于i是j的父亲,有 b[i]−size[j]+x−size[j]=b[j]b[i]-size[j]+x-size[j]=b[j] x−2∗size[j]=b[j]−b[i]=c[j]x-2*s...
阅读(216) 评论(0)

机器人游戏

题目描述小A和小B在一个R行S列的棋盘上玩游戏,棋盘上的每一个棋格都有一个方向标记(上、下、左或右)。游戏按如下方式进行: 小A先将K个棋格涂上黑色(初始为白色),并且他不能涂黑最后一列的棋格;随后,小B在第一列的任意一个棋格上放一个小机器人;此时,小机器人将会不停地沿着他所在的棋格所指示的方向走到一个相邻的棋格,直到他到达最后一列的棋格,游戏结束。 游戏胜负规则如下: ●如果小机器人最终到达...
阅读(201) 评论(0)

跳蚤王国

题目描述跳蚤王国爆发了一场动乱,国王在镇压动乱的同时,需要在跳蚤国地方钦定一个人来做宰相。 然而当时国王的钦定方式很奇怪,跳蚤王国可以看成一棵树,国王认为宰相必须更好地位跳蚤服务,所以他会选择一个到所有节点距离和最小的节点,并在这个节点中钦定,如果有多个节点满足距离和最小则任选一个。 然而跳蚤国的动乱实在是太厉害了,以至于树的心态可能也会发生改变也就是说,树上可能会有若干条边消失,如果这个情况出...
阅读(203) 评论(0)

[CF671D]Roads in Yusland

题目大意一颗n个节点的树所有边都坏掉了。 请m个工人修路,每个工人都可以修一条树链ui到vi,费用为ci。 求最小修路费用,无法全部修复输出-1。DP我们来设f[i]表示i子树全都修好(包括i到父亲那条边)的最小费用。 怎么转移呢? 比如有一个能修i到其父亲边的工人j,费用是这个工人的费用+其他杂七杂八的子树的f值和。 用线段树来维护,大概是这样吧QAQ贪心我们来看看一个强做法! 首先可...
阅读(300) 评论(0)
39条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:297134次
    • 积分:11195
    • 等级:
    • 排名:第1574名
    • 原创:805篇
    • 转载:4篇
    • 译文:0篇
    • 评论:197条
    最新评论
    文章分类