题目内容
塔子哥有一个n个整数的数组a1,a2,...,an,他想两两将这些数字连成一张图,规则为:
从数组中选取任意两个数字ai和aj(i=j),如果ai+aj为质数,则将这两个点相连,边权即为ai+aj;
连出的图可能由若干个连通块构成,塔子哥只关心那些点数最多的连通块,他想要知道,这些连通块能构成的全部生成树中,权值最小的那棵的权值是多少。
你只需输出这棵生成树的权值。
题目思路
模拟即可,首先通过并查集找到所有的连通块和大小,对最大的连通块做最小生成树,将最小的生成树权值输出即可。
代码
Java