相似图片分类 [华为]【并查集】

题目描述:

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

输入描述:

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

  1. 0 < N <= 900
  2. 0 <= M[i][j] <= 100,输入保证 M[i][i]=0,M[i][j]=M[j][i]
  3. 输入的矩阵中分隔符为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
输出
62 25

样例2

输入
5
0 5 42 0 0
5 0 0 91 0
42 0 0 0 15
0 91 0 0 0
0 0 15 0 0
输出
153

样例3

输入
7
0 1 3 0 0 0 0
1 0 2 0 0 0 0
3 2 0 0 0 0 0
0 0 0 0 3 0 9
0 0 0 3 0 5 0
0 0 0 0 5 0 7
0 0 0 9 0 7 0
输出
24 6

AC代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 1010;int n, m;
int k[N][N];
int p[N];
map<int, int> p2;
map<int, bool> p3;
vector<int> res;int find(int x)
{if(p[x] != x) p[x] = find(p[x]);return p[x];
}int main()
{cin >> n;for(int i = 1; i <= n; i ++) p[i] = i;for(int i = 1; i <= n; i ++){for(int j = 1; j <= n; j ++){cin >> k[i][j];if(k[i][j] > 0) p[find(i)] = find(j);}}for(int i = 1; i <= n; i ++){for(int j = 1; j <= n; j ++){if(find(i) == find(j) && k[i][j] > 0) p2[find(i)] += k[i][j];}}for(int i = 1; i <= n; i ++){if(p3[find(i)] == false){res.push_back(p2[find(i)] / 2);p3[find(i)] = true;}}sort(res.begin(), res.end());reverse(res.begin(), res.end());for(int i = 0; i < res.size(); i ++){if(i != res.size() - 1) cout << res[i] << " ";else cout <<  res[i];}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/808975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

请描述TensorFlow中的Saver对象及其用途。在TensorFlow中,如何保存和加载训练好的模型?

请描述TensorFlow中的Saver对象及其用途。 TensorFlow中的Saver对象是一个用于保存和加载模型参数的类。Saver对象在TensorFlow中扮演着至关重要的角色&#xff0c;尤其是在模型训练和部署的过程中。 Saver对象的主要用途如下&#xff1a; 模型保存&#xff1a;在训练神经网络…

Open CASCADE学习|BrepOffsetAPI_ThruSections无法放样成Solid

目录 1、边界线&#xff08;TopoDS_Wire&#xff09;不在一个平面上时&#xff0c;无法生成Solid 2、边界线&#xff08;TopoDS_Wire&#xff09;在一个平面上时&#xff0c;可以生成Solid 3、边界线&#xff08;TopoDS_Wire&#xff09;不在一个平面上时&#xff0c;添加To…

【vue】v-model 双向数据绑定

:value&#xff1a;单向数据绑定v-model&#xff1a;双向数据绑定 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

学习云计算HCIE选择誉天有什么优势?

誉天云计算课程优势实战性强 课程注重实践操作&#xff0c;通过实际案例和实验操作&#xff0c;让学员深入了解云计算的应用场景和实际操作技能。课程内容全面 涵盖所有云计算涉及的IT基础知识、服务器、存储、网络等方面的基础知识&#xff0c;开源操作系统Linux&#xff0c;开…

Spring Cloud启动类上的注解详解

在微服务架构的世界里&#xff0c;Spring Cloud以其丰富的功能和简洁的编程模型成为了开发者的心头好。本文将深入探讨Spring Cloud启动类中的那些关键注解&#xff0c;带你一步步解锁微服务开发的秘密。 1. 引言 Spring Cloud应用的启动类是微服务的大脑&#xff0c;通过一系…

Python(1):认识Python并且了解一些简单函数

文章目录 一、Python的优势及其使用场景二、Python环境的安装三、Python中的变量及其命名四、Python中的注释五、一些简单常见的函数和认识ASCII表六、Python导入模块的方式 一、Python的优势及其使用场景 优点&#xff1a; 开发效率高&#xff1a;Python具有非常强大的第三方…

ChatGPT助力论文写作:让写作变得更高效

ChatGPT无限次数:点击直达 ChatGPT助力论文写作&#xff1a;让写作变得更高效 随着人工智能技术的不断发展&#xff0c;ChatGPT作为一种强大的自然语言处理工具&#xff0c;已经成为许多研究人员和学生在论文写作过程中的得力助手。ChatGPT可以帮助用户生成自然流畅的文字&…

设计模式代码实战-工厂模式

1、问题描述 小明家有两个工厂&#xff0c;一个用于生产圆形积木&#xff0c;一个用于生产方形积木&#xff0c;请你帮他设计一个积木工厂系统&#xff0c;记录积木生产的信息。 输入案例 3 Circle 1 Square 2 Circle 1 2、工厂模式 将产品的创建过程封装在⼀个⼯⼚类中&am…

下采样-最大池化方法

下采样的最大池化&#xff08;Max Pooling&#xff09;方法是一种常用的降低图像分辨率的方法&#xff0c;它通过在图像的不重叠区域内选择像素值的最大值来减少图像的大小。下面通过图文并茂的方式详细描述最大池化方法的实现过程。 现在我们想对这张图像进行下采样&#xff…

我国量子信息科技创新发展面临的挑战及建议——基于中美对比视角的分析

2024年2月&#xff0c;中国科学技术发展战略院慕慧娟博士、丁明磊研究员及光子盒顾成建一起在《科技管理研究》上发表文章——《我国量子信息科技创新发展面临的挑战及建议&#xff1a;基于中美对比视角的分析》。 在此&#xff0c;我们整理并发布这篇文章&#xff0c;欢迎感兴…

数据湖/数据仓库

数据湖&#xff08;Data Lake&#xff09;和数据仓库&#xff08;Data Warehouse&#xff09;的主要区别在于它们的目的、存储的数据类型、数据处理方式、数据结构、数据安全性以及数据应用。以下是相关介绍&#xff1a; 目的。数据湖旨在作为一个集中的存储库&#xff0c;存储…

librosa.beat.beat_track()报错解决记录

在使用librosa.beat.beat_track(yy, srsr)时报错&#xff1a;AttributeError: module scipy.signal has no attribute hann&#xff0c;很奇怪的问题&#xff0c;大家好像都没有遇到这个错误&#xff1a; 很奇怪&#xff0c;这个hann明明是scipy.signal.windows里面的。。虚拟环…

【Spring】面试题汇总

Spring1. 什么是 Spring 框架?2. 谈谈你对于 Spring IoC 的了解3. 什么是依赖注入4. Spring的依赖注入有几种方式5. 将一个类声明为 Bean 的注解有哪些?6. Component 和 Bean 的区别是什么&#xff1f;7. 注入 Bean 的注解有哪些&#xff1f;8. Bean 的作用域有哪些?9. Bean…

目标检测YOLO实战应用案例100讲-【目标检测】缺陷检测(三)

目录 瓷砖缺陷检测 印刷缺陷的视觉检测原理 检测原理 针对型检测算法 通用型检测算法

OpenHarmony4.0分布式任务调度浅析

1 概述 OpenHarmony 分布式任务调度是一种基于分布式软总线、分布式数据管理、分布式 Profile 等技术特性的任务调度方式。它通过构建一种统一的分布式服务管理机制&#xff0c;包括服务发现、同步、注册和调用等环节&#xff0c;实现了对跨设备的应用进行远程启动、远程调用、…

ChatGPT 论文必备:探索ChatGPT如何助力您的论文写作

ChatGPT无限次数:点击直达 ChatGPT 论文必备&#xff1a;探索ChatGPT如何助力您的论文写作 在写作论文的过程中&#xff0c;如何高效地整理思路、拓展观点以及提高写作效率是每位研究者都面临的挑战。随着人工智能技术的不断发展&#xff0c;ChatGPT作为一款强大的自然语言处理…

物联网在工业中的应用是什么?——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网在工业中的应用已经日益广泛&#xff0c;它为企业带来了前所未有的机会和挑战。物联网技术通过连接各种设备和系统&#xff0c;实现了数据的实时采集、分析和优化&#xff0c;从而提高了生产效率、降低了成本并提升了企业的竞争力。…

基于WEB的水库水情自动测报系统的研究与设计(论文+源码)_kaic

摘要 水情信息是水利管理最重要的基础信息&#xff0c;是水文预报、水资源管理、防汛抗旱决策的主要依据。水情自动测报系统是一个自动采集、传输、处理水情信息的实时测报系统&#xff0c;可对水库流域内的水情、水文和气象数据&#xff0c;如雨量、流量、水位等&#xff0c;实…

动态规划-入门三道题

1137. 第 N 个泰波那契数 题目描述&#xff1a; 状态表示: dp[i]表示第i个泰波那契数。 状态转移方程&#xff1a; dp[i]dp[i-3]dp[i-2]dp[i-1]。 初始化: 动态规划问题的初始化就是为了去避免初始情况下的越界问题。这里就对dp[0]0,dp[1]1,dp[2]1这样进行初始化即可&#xf…

[2024最新]PyCharm专业版安装与破解

1、下载pyCharm专业版安装包和破解包 下载链接&#xff1a;https://pan.baidu.com/s/1h-DN3G-LCpj0Wnk5HPNhqQ?pwdyyds 提取码&#xff1a;yyds 2、选择版本&#xff0c;这里我以2023.1.4专业版举例 3、开始安装 选择下一步 配置安装选项&#xff08;建议全部勾上&#xff…