2018ICPC青岛

Posted macaulish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018ICPC青岛相关的知识,希望对你有一定的参考价值。

B

题意:给n个问题,每个问题有一个固定的答案ai(<=10^5).现在有m个约束关系,每个约束关系是一个二元组(ui,vi),表示你回答ui、vi问题的答案必须一样。

现在让你输出分别修复一个约束,然后回答每个问题,最多能答对多少道。

分析:约束关系其实是弱联通关系,要求回答每个联通块是一样的。所以建一个图。

然后考虑拆掉一个约束关系(一条边),可以发现如果处在一个强连通分量内,拆掉对答案没有影响。所以先tarjan缩编然后重建树。

若是一条桥边,那么就是把树拆成多个部分,更新答案。

具体我想可以通过dsu(长链剖分啊,重链剖分啊,把答案先存在重心上分治),或者通过树上的线段树合并(不知道内存会不会炸)。

线段树合并的做法:对那个联通块的根rt,fa(vi)=ui,更新答案可以 = tree(rt)-tree(ui) 和tree(ui)-tree(vi)-val(ui) 和tree(vi) - val (ui) 。

 

 

E

题意:有n棵植物从1到n,初始能力值都为0,还有个成长值ai。有个机器人,初始在0,如果机器人走到i,那么i植物能力值加上ai,现在给出机器人的活动步数m(<=10^12),求使得所有植物能力值最小值最大的值。

分析:二分答案,然后转化为每个植物至少要走ki次,判断是否能满足。据说从左到右贪心就可以了。

以上是关于2018ICPC青岛的主要内容,如果未能解决你的问题,请参考以下文章

2018acm-icpc青岛站后记

2018 ICPC青岛网络赛 B. Red Black Tree(倍增lca)

2018 ICPC青岛网络赛 B. Red Black Tree(倍增lca好题)

2018ICPC青岛现场赛 重现训练

ACM-ICPC 2018青岛网络赛-H题

ACM-ICPC2018 青岛赛区网络预赛-B- Red Black Tree