NC213789. 芭芭拉冲鸭~
描述
输入描述
第一行一个正整数,代表树的节点个数。第二行是一个长度为的字符串,仅由"R、G、B"这三种字符组成。第i个字符用于描述第i个节点的颜色。接下来的行,每行有两个正整数和,代表和节点有一条边连接。保证输入一定表示一棵树。
输出描述
一个正整数,代表芭芭拉能冲刺的距离的最大值。
示例1
输入:
5 RRGBG 1 2 2 3 3 4 4 5
输出:
3
说明:
Python3 解法, 执行用时: 1021ms, 内存消耗: 116152K, 提交时间: 2022-11-02 12:20:59
import sys sys.setrecursionlimit(100010) n=int(input()) color=input() child=[[] for i in range(n+1)] for i in range(1,n): x,y=map(int,input().split()) child[x].append(y) child[y].append(x) dp=[0 for i in range(n+1)] res = 0 def dfs(n,m): global res for i in child[n]: if i==m:continue dfs(i,n) if color[i-1]==color[n-1]:continue res=max(res,dp[i]+dp[n]+1) dp[n]=max(dp[n],dp[i]+1) dfs(1,0) print(res)