考虑对于树上两个相邻的白色节点,权值之和为质数,则可以选择一个点染色为红色。
考虑每条边,如果这条边对应的两个节点权值之和不为质数,则这条边就可以被断开。
所以,通过这样的断开后,我们只需要考虑每棵树,这些树上的每条边的两个节点权值之和均为质数。
考虑选择任意一个点作为树根,按照这种做法,每个树根的数量必然小于等于每个儿子的数量,所以对于每条边,我们都选择作为儿子的点。这样,有多少条边,就可以有多少个被染为红色的点。
另外,这里需要快速判断一个数是否为质数,可以用欧拉筛或埃氏筛法。欧拉筛是 O(n) 的,埃氏筛法是 O(nlogn)
小红是一个热爱冒险和探索的年轻人。有一天,他看到了一张神秘的照片,照片上有一颗挂着红薯的树。这个景象让小红觉得非常有趣,他决定也要种一颗树,并挂上一些红薯,以此分享他的冒险故事。
小红收集了一颗神奇的数树种子,这颗数树与普通树不同,每个结点都有一个特殊的权值。初始时,所有节点都是白色的。小红发现每次可以选择两个相邻的白色节点,并且它们的权值之和必须是质数。一旦满足这个条件,小红就可以选择其中一个节点染成红色。
现在,小红想知道,在这颗数树上,最多可以染红多少个节点。
第一行输入一个正整数n,代表节点的数量
第二行输入n个正整数ai,代表每个节点的权值
接下来的n-1行每行输入两个正整教u,v,代表节点u和节点v有一条边连接
1≤n≤105
1≤ai≤105
1≤u,v≤n
输出一个整数表示正确答案。
4
1 2 3 4
1 2
2 3
3 4
3