牛影传说【线段树+BFS序运用】

本文介绍了牛影传说的问题背景,其中涉及到神牛在据点施展三种不同法力来影响牛的数量。问题核心是计算神牛创造的牛的数量,输入包括村庄数、初始牛的数量、道路连接和法力施展记录。解决方案是通过建立BFS序,利用线段树进行连续序列的维护。文章详细讲解了BFS序的建立和线段树在处理法力2、3时的应用,指出代码实现需要注意维护量的细节。
摘要由CSDN通过智能技术生成

题目:

牛影村有N个据点,这些据点有N-1条双向道路连接,任意两个据点之间有且仅有一条路径相通。最初每个据点都驻扎着一些牛。神牛H具有法力无边的能力,他随时都可能会降临牛影村的某个据点,每来到一个据点,他可能使用如下三种法力中的一种:

  1、在据点i中选择一头强壮的牛,复制一个一模一样的。(无牛可以继续复制 即直接+1即可)

  2、把据点i及其所有与i有道路连接的据点中的所有牛都复制一分(这些据点的牛数量加倍)。

  3、把据点i及其所有与i有道路连接的据点中的所有牛都带到天宫屠杀

  你作为牛影村的首领,观察统计了神牛H降临牛影村的次数以及他每次施展的法术,现在神牛H再也不会来了,但你想知道神牛为牛影村创造了多少头牛。

Input

  第1行是一个整数N,表示牛影村中据点个数,据点分别编号为1..N。  第2行有N个非负整数,依次表示每个据点开始时牛的个数。  接下来的N-1行&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值