

【題目描述】
給出兩幅相同大小的黑白圖像(用0-1矩陣)表示,求它們的相似度。說明:若兩幅圖像在相同位置上的像素點顏色相同,則稱它們在該位置具有相同的像素點。兩幅圖像的相似度定義為相同像素點數占總像素點數的百分比。
【輸入】
第一行包含兩個整數m和n,表示圖像的行數和列數,中間用單個空格隔開。1≤m≤100, 1≤n≤100。
之后m行,每行n個整數0或1,表示第一幅黑白圖像上各像素點的顏色。相鄰兩個數之間用單個空格隔開。
之后m行,每行n個整數0或1,表示第二幅黑白圖像上各像素點的顏色。相鄰兩個數之間用單個空格隔開。
【輸出】
一個實數,表示相似度(以百分比的形式給出),精確到小數點后兩位。
【輸入樣例】
3 3
1 0 1
0 0 1
1 1 0
1 1 0
0 0 1
0 0 1
【輸出樣例】
44.44
說明
主要考查二維數組。
題目概述
輸入兩個矩陣,求這兩矩陣坐標值相等的數目占一個矩陣坐標總數的百分比。
思路分析
上圖中,左邊的是矩陣a,右邊是矩陣b,它們都具有相同的坐標(以相同顏色標注),如果相同坐標的值相等(元素相等),則累計。例如上圖(1,1)、(1,3)、(2,1)、(2,2)、(2,3)坐標值相等,共5個,而矩陣坐標共有9個,所以相等坐標值的數目占總數的44.44%,所以輸出44.44。
對于矩陣輸入,有兩種方案。
第一,聲明兩個二維數組接收矩陣數據。
第二,聲明一個二維數組接收第一個矩陣的數據,第二個矩陣可以使用變量來接收。
不管是哪種,在判斷兩個矩陣的相同坐標的值是否相等,都采用相同的思路。即在輸入第二個矩陣時,可以邊輸入邊判斷兩個矩陣的相同坐標的值,所以不管是使用二維數組還是變量,都可以達到目的。
代碼中將展示此兩種方法。
最后輸出時應注意數據類型,輸入的數據是整型,而輸出的是浮點型,且是百分比,所以應乘以100.0,這樣既可以轉換成浮點型,有可以達到百分比的結果。
數據類型:輸入的數據可選int類型,注意輸出時類型的轉換。
參考代碼 - C++(方法1)
參考代碼 - C++(方法2)
參考代碼下載鏈接
https://pan.baidu.com/s/1yx7aWaE63dqcW1yBkoNjKA?
提取碼: dsbc
END
注:題目來源于網絡,轉載于《信息學奧賽一本通(C++版)在線評測系統》,點擊下方的【閱讀原文】即可打開該題的鏈接。
題解屬于本微信公眾號【大神編程】原創。