3360. 【NOI2013模拟】苹果树

本文介绍了一道关于苹果树的题目,树上的每个苹果都有独特的颜色,膜拜神犇的人需要回答从编号为N的苹果到自身的路径上不同颜色的数量。由于色盲症的影响,颜色可能被混淆。题目要求设计一个程序,考虑色盲情况计算正确答案。该问题通过将树转化为序列,结合树上莫队算法进行解决。首先,将树转换为特定的序列,然后利用序列中节点出现的次数来确定路径上的颜色数量。对于路径中不包含最近公共祖先的情况,需要特别处理。
摘要由CSDN通过智能技术生成
题目描述
  • 神犇家门口种了一棵苹果树。苹果树作为一棵树,当然是呈树状结构,每根树枝连接两个苹果,每个苹果都可以沿着一条由树枝构成的路径连到树根,而且这样的路径只存在一条。由于这棵苹果树是神犇种的,所以苹果都发生了变异,变成了各种各样的颜色。我们用一个1到N之间的正整数来表示一种颜色。树上一共有N个苹果。每个苹果都被编了号码,号码为一个1到N之间的正整数。我们用0代表树根。只会有一个苹果直接连到树根。

  • 有许许多多的人来神犇家里膜拜神犇。可神犇可不是随便就能膜拜的。前来膜拜神犇的人需要正确回答一个问题,才能进屋膜拜神犇。这个问题就是,从树上编号为N的苹果出发,由树枝走到编号为N的苹果,路径上经过的苹果一共有多少种不同的颜色(包括苹果u和苹果v的颜色)?不过神犇注意到,有些来膜拜的人患有色盲症。具体地说,一个人可能会认为颜色a就是颜色b,那么他们在数苹果的颜色时,如果既出现了颜色a的苹果,又出现了颜色b的苹果,这个人只会算入颜色b,而不会把颜色a算进来。

  • 神犇是一个好人,他不会强人所难,也就会接受由于色盲症导致的答案错误(当然答案在色盲环境下也必须是正确的)。不过这样神犇也就要更改他原先数颜色的程序了。虽然这对于神犇来说是小菜一碟,但是他想考验一下你。你能替神犇完成这项任务吗?

数据范围

n &lt; = 5 ∗ 1 0 4 , m &lt; = 1 0 5 n&lt;=5*10^4,m&lt;=10^5 n<=5104,m<=105

题目分析
  • 听说又是一道鬼畜的模板题。
  • 这道题显然 使用树上莫队。
  • 普通莫队是在序列上做的,如何转移到树上呢?
  • 最直接的思路:把树强制转成序列。
  • 恭喜你,你猜对了。
树转序列
  • 采用一种神奇的东西(具体叫什么序也不清楚)。
  • 就是在遍历一棵树的时候,如果递归到了这个点,把它扔进序列中,如果回溯,再一次把它扔进序列中。
  • 盗个图:
  • 在这里插入图片描述
  • 那么这个序列就是 A B E E F K K F B C G G H H I I C A ABEEFKKFBCGGHHIICA ABEEFKKFBCGGHHIICA
  • 我们发现,对于一条路径 x − &gt; y x-&gt;y x>y,我们分类讨论。
  • 先设 s t [ i ] st[i] st[i] i i i这个点第一次在序列中的位置, e d [ i ] ed[i] ed[i]表示的是第二次,也是最后一次。
  • x x x y y y中一个为它们的 L C A LCA LCA,那么它们的路径就是序列 [ s t [ x ] , s t [ y ] ] [st[x],st[y]] [st[x],st[y]]只出现过一次的点。
  • 例如 A − &gt; K A-&gt;K A>K,序列为 A B E E F K ABEEFK ABEEFK
  • 其中出现过一次的为
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值