华为实习4.10机考第二题C++代码

news/发布时间2024/5/10 8:15:24

考的是简单的并查集

这道题考法就是并查集,若两个图片相似度大于0,则将他们放到一个家族中,同时维护家族的相似度总和。

注意 M 矩阵是对称矩阵,所以需要避免重复维护相似度,因此可以只针对 M 矩阵的下三角矩阵或上三角矩阵中的连接块,计算相似度总和;或考虑整个 M 矩阵,然后相似度总和除以2。

代码如下:

#include<iostream>
#include<unordered_set>
#include<vector>
#include<algorithm>
using namespace std;const int N = 910;int f[N], sum[N] , M[N][N];int find(int x){if(x != f[x]) f[x] = find(f[x]);return f[x];
}bool cmp(int x,int y){return x > y;
}int main(){unordered_set<int> Set;vector<int> v;int n ;cin >> n ;for(int i = 1 ; i <= n ; i ++) {f[i] = i;sum[i] = 0;}for(int i = 1 ; i <= n ; i ++){for(int j = 1 ; j <= n ; j ++){scanf("%d",&M[i][j]);}}for(int i = 1 ; i <= n ; i ++){for(int j = 1 ; j <= i ; j ++){if(M[i][j]) {int t = sum[find(i)] + M[i][j];f[find(i)] = find(j);sum[find(i)] += t;}}}for(int i = 1 ; i <= n ; i ++) Set.insert(sum[find(i)]);for(auto it: Set) v.push_back(it);sort(v.begin(),v.end(),cmp);for(int i = 0 ; i < v.size() ; i ++) printf("%d ",v[i]);return 0;
}

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

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

相关文章

甘特图使用小诀窍,项目把控游刃有余

在项目管理过程中,掌握甘特图的使用技巧可以让你事半功倍,高效规划和监控项目进度。作为一种视觉化的工具,甘特图直观地展示了任务的开始和结束时间、持续时间以及任务之间的依赖关系,有助于预测和优化资源分配。掌握以下几个小诀窍,你就能驾驭甘特图,游刃有余地把控整个项目。…

实验一 二手交易平台APP原型设计

一、实验题目:原型设计 二、实验目的:掌握产品原型设计方法和相应工具使用。 三、实验要求 1.对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(至少3条)。 墨刀的适用领域及优缺点 适用领域 墨刀是一款在线原型设计与协同工具,借助墨刀,产品经理、…

一周涨 15k Star 的开源项目「GitHub 热点速览」

https://www.cnblogs.com/xueweihan/p/18137334你训练大语言模型(LLM)用的什么框架?有没有想过不用框架训练 GPT-2? GitHub 上就有这么一位大神(Andrej Karpathy),他仅用大约 1k 行的 C 代码就完成了 GPT-2 模型的训练,代码纯手撸、不依赖任何机器学习框架,作者这么做…

大报文之道:优化策略与实践

写在前面 在做正常的需求开发时,当我们提供了一个接口或是调用别人接口时,我们需要考虑接口除了正常的逻辑处理外,还需要考虑接口能接收报文的上限,性能,响应时间等一系列非功能性需求。如果不注意这些问题,就可能在某一天的某个时刻收到一系列系统告警,严重者甚至导致系…

FlinkSQL 实时同步 MySQL

本文主要介绍了使用 FlinkSQL 实现 MySQL 数据的实时同步。准备工作MySQL 数据库(version: 5.7.25),注意,MySQL 数据库版本必须大于 5.6,否则不支持。开启 MySQL 的 log-bin: [mysqld] # Binary Logging. log-bin=mysql-bin server-id=1Flink (version : 1.15.4)添加 fli…

FlinkSQL 实时数据同步

准备工作MySQL 数据库(version: 5.7.25),注意,MySQL 数据库版本必须大于 5.6,否则不支持。开启 MySQL 的 log-bin: [mysqld] # Binary Logging. log-bin=mysql-bin server-id=1Flink (version : 1.15.4)添加 flink-connector-jdbc-1.15.4.jar 和 flink-sql-connector-mys…