A6339 | 「ZJOI2015」诸神眷顾的幻想乡
时间限制1s
内存限制512MB
通过 / 提交0/0
题目描述
幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的 2600 岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日。
粉丝们非常热情,自发组织表演了一系列节目给幽香看。幽香当然也非常高兴啦。
这时幽香发现了一件非常有趣的事情,太阳花田有 $n$ 块空地。在过去,幽香为了方便,在这 $n$ 块空地之间修建了 $n-1$ 条边将它们连通起来。也就是说,这 $n$ 块空地形成了一个树的结构。
有 $n$ 个粉丝们来到了太阳花田上。为了表达对幽香生日的祝贺,他们选择了 $c$ 种颜色的衣服,每种颜色恰好可以用一个 $0$ 到 $c-1$ 之间的整数来表示。并且每个人都站在一个空地上,每个空地上也只有一个人。这样整个太阳花田就花花绿绿了。幽香看到了,感觉也非常开心。
粉丝们策划的一个节目是这样的,选中两个粉丝 $A$ 和 $B$($A$ 和 $B$ 可以相同),然后 $A$ 所在的空地到 $B$ 所在的空地的路径上的粉丝依次跳起来(包括端点),幽香就能看到一个长度为 $A$ 到 $B$ 之间路径上的所有粉丝的数目(包括 $A$ 和 $B$)的颜色序列。一开始大家打算让每两个粉丝(注意:$A,B$ 和
$B,A$ 是不同的,他们形成的序列刚好相反,比如红绿蓝和蓝绿红)都来一次,但是有人指出这样可能会出现一些一模一样的颜色序列,会导致审美疲劳。
于是他们想要问题,在这个树上,一共有多少可能的不同的颜色序列(子串)幽香可以看到呢?
太阳花田的结构比较特殊,只与一个空地相邻的空地数量不超过 $20$ 个。
粉丝们非常热情,自发组织表演了一系列节目给幽香看。幽香当然也非常高兴啦。
这时幽香发现了一件非常有趣的事情,太阳花田有 $n$ 块空地。在过去,幽香为了方便,在这 $n$ 块空地之间修建了 $n-1$ 条边将它们连通起来。也就是说,这 $n$ 块空地形成了一个树的结构。
有 $n$ 个粉丝们来到了太阳花田上。为了表达对幽香生日的祝贺,他们选择了 $c$ 种颜色的衣服,每种颜色恰好可以用一个 $0$ 到 $c-1$ 之间的整数来表示。并且每个人都站在一个空地上,每个空地上也只有一个人。这样整个太阳花田就花花绿绿了。幽香看到了,感觉也非常开心。
粉丝们策划的一个节目是这样的,选中两个粉丝 $A$ 和 $B$($A$ 和 $B$ 可以相同),然后 $A$ 所在的空地到 $B$ 所在的空地的路径上的粉丝依次跳起来(包括端点),幽香就能看到一个长度为 $A$ 到 $B$ 之间路径上的所有粉丝的数目(包括 $A$ 和 $B$)的颜色序列。一开始大家打算让每两个粉丝(注意:$A,B$ 和
$B,A$ 是不同的,他们形成的序列刚好相反,比如红绿蓝和蓝绿红)都来一次,但是有人指出这样可能会出现一些一模一样的颜色序列,会导致审美疲劳。
于是他们想要问题,在这个树上,一共有多少可能的不同的颜色序列(子串)幽香可以看到呢?
太阳花田的结构比较特殊,只与一个空地相邻的空地数量不超过 $20$ 个。
输入格式
第一行两个正整数 $n,c$ 。表示空地数量和颜色数量。
第二行有 $n$ 个 $0$ 到 $c-1$之间,由空格隔开的整数,依次表示第 $i$ 块空地上的粉丝的衣服颜色。(这里我们按照节点标号从小到大的顺序依次给出每块空地上粉丝的衣服颜色)。
接下来 $n-1$ 行,每行两个正整数 $u,v$,表示有一条连接空地 $u$ 和空地 $v$ 的边。
第二行有 $n$ 个 $0$ 到 $c-1$之间,由空格隔开的整数,依次表示第 $i$ 块空地上的粉丝的衣服颜色。(这里我们按照节点标号从小到大的顺序依次给出每块空地上粉丝的衣服颜色)。
接下来 $n-1$ 行,每行两个正整数 $u,v$,表示有一条连接空地 $u$ 和空地 $v$ 的边。
输出格式
一行,输出一个整数,表示答案。
输入输出样例
输入 #1
7 3 0 2 1 2 1 0 0 1 2 3 4 3 5 4 6 5 7 2 5
输出 #1
30
对于所有数据,$1 \leq n \leq 100000, 1 \leq c \leq 10$。
对于 $15\%$ 的数据,$n \leq 2000$。
另有 $5\%$ 的数据,所有空地都至多与两个空地相邻。
另有 $5\%$ 的数据,除一块空地与三个空地相邻外,其他空地都分别至多与两个空地相邻。
另有 $5\%$ 的数据,除某两块空地与三个空地相邻外,其他空地都分别至多与两个空地相邻。
对于 $15\%$ 的数据,$n \leq 2000$。
另有 $5\%$ 的数据,所有空地都至多与两个空地相邻。
另有 $5\%$ 的数据,除一块空地与三个空地相邻外,其他空地都分别至多与两个空地相邻。
另有 $5\%$ 的数据,除某两块空地与三个空地相邻外,其他空地都分别至多与两个空地相邻。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?