T611627 相似度
解题思路
-
理解相似度定义:比较两个相同大小的0-1矩阵,统计相同位置元素相同的数量,计算占总元素数的百分比
-
输入处理:
-
先读取矩阵的行数n和列数m
-
然后读取第一个n×m矩阵
-
接着读取第二个n×m矩阵
-
-
比较计算:
-
逐个比较两个矩阵对应位置的元素
-
统计相同元素的数量
-
-
计算百分比:
-
将相同元素数量除以总元素数量
-
转换为百分比并保留两位小数
-
代码注释
#include<bits/stdc++.h> using namespace std; int n, m; // 定义矩阵的行数n和列数m int a[101][101], b[101][101]; // 定义两个足够大的矩阵(题目最大100×100) int main() { // 读取矩阵的行数n和列数m cin >> n >> m; // 读取第一个n×m矩阵 for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin >> a[i][j]; // 存入矩阵a // 读取第二个n×m矩阵 for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin >> b[i][j]; // 存入矩阵b int sum = 0; // 初始化相同元素计数器 // 比较两个矩阵的每个对应元素 for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) if(a[i][j] == b[i][j]) // 如果元素相同 sum++; // 计数器加1 // 计算相似度百分比 double ans = sum * 1.0 / (n * m); // 先计算小数形式 printf("%.2f", ans * 100); // 转换为百分比并保留两位小数 return 0; // 程序正常结束 }

浙公网安备 33010602011771号