#P1516. 2024.04.10-暑期实习-第二题-相似度计算

2024.04.10-暑期实习-第二题-相似度计算

题目描述

塔子哥想要处理一批图片,将相似的图片分类。他首先对图片的特征采样,得到图片之间的相似度,然后按照以下规则判断图片是否可以归为一类: 1)相似度>0表示两张图片相似; 2)如果A和B相似,B和C相似,但A和C不相似。那么认为A和C间接相似,可以把ABC归为一类,但不计算AC的相似度: 3)如果A和所有其他图片都不相似,则A自己归为一类,相似度为0。给定一个大小为N×NN\times N的矩阵MM存储任意两张图片的相似度,M]即为第ii个图片和第jj个图片的相似度,请按照"从大到小"的顺序返回每个相似类中所有图片的相似度之和。

输入描述

第一行一个数N(1N900)N(1\le N\le 900),代表矩阵MM中有NN个图片。下面跟着NN行,每行有NN列数据,空格分隔(为了显示整齐,空格可能为多个),代表NN个图片之间的相似度。

其中0M[i][j]1000\le M[i][j]\le 100,输入保证M[i][j]=M[j][i]M[i][j]=M[j][i]

输入的矩阵分隔符为1个或多个连续空格

输出描述

每个相似类的相似度之和。格式为:一行数字,分隔符为1个空格

样例1

输入

5
0 0 50 0 0
0 0 0 25 0
50 0 0 0 15
0 25 0 0 0
0 0 15 0 0

输出

65 25

说明

把1~5看成A,B,C,D,E
矩阵显示,A和C相似度为50,C和E的相似度为15:B和D相似度为25。划分出2个相似类,分别为
1.{A,C,E},相似度之和为65
2.{B,D},相似度之和25
排序输出相似度之和,结果为:65 25