#1496. CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

CF741D Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths

题目描述

给定一棵以 11 号顶点为根的有根树,树中共有 nn 个顶点。每条边上写有一个小写英文字母,字母只会出现在 av 之间。

称一个字符串是 Dokhtar-kosh 的,当且仅当可以重新排列它的字符,使其变成一个回文串。等价地,这个字符串中至多只有一种字符出现奇数次。

对于每个顶点 vv,考虑以 vv 为根的子树。你需要在这个子树内部选择一条简单路径,使得路径上所有边的字母按顺序组成的字符串是 Dokhtar-kosh 的,并使这条路径的长度尽可能大。路径长度按经过的边数计算。请输出每个顶点对应的最大长度。

输入格式

第一行一个整数 nn,表示顶点数。

接下来 n1n-1 行,第 ii 行描述顶点 i+1i+1 的父边,包含一个整数 pi+1p_{i+1} 和一个小写字母 ci+1c_{i+1},表示 pi+1p_{i+1}i+1i+1 的父亲,且边 (pi+1,i+1)(p_{i+1}, i+1) 上写着字母 ci+1c_{i+1}

输出格式

输出 nn 个整数,第 ii 个整数表示以顶点 ii 为根的子树中的答案。

样例

样例输入

3
1 a
1 b

样例输出

1 0 0

数据范围与约定

1n5×1051\le n\le 5\times 10^51pi<i1\le p_i<ici{a,b,,v}c_i\in\{a,b,\ldots,v\}

说明

原需求中写作 CodeForces-741E,但对应的树上启发式合并题实际为 CodeForces-741D,本包按 CF741D 制作。