T611627 相似度

解题思路

  1. 理解相似度定义:比较两个相同大小的0-1矩阵,统计相同位置元素相同的数量,计算占总元素数的百分比

  2. 输入处理:

    • 先读取矩阵的行数n和列数m

    • 然后读取第一个n×m矩阵

    • 接着读取第二个n×m矩阵

  3. 比较计算:

    • 逐个比较两个矩阵对应位置的元素

    • 统计相同元素的数量

  4. 计算百分比:

    • 将相同元素数量除以总元素数量

    • 转换为百分比并保留两位小数

代码注释

#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; // 程序正常结束
}

 

posted @ 2025-05-27 14:12  CRt0729  阅读(28)  评论(0)    收藏  举报