合計時間の制限は:メモリ制限を1000ミリ秒:65536kBの
記述は、
それらの類似性を見つける同じサイズ(0-1マトリックス)の2枚の白黒画像を与え。
注:同一の位置に同一の画像内の2つのカラー画素場合、それらは同じ位置に画素を有すると言われています。2つの画像の類似性を定義すると、同じ画素数の全画素数に対する割合です。
入力
最初の行は、二つの整数mおよびn、行と画像の列の数は、単一のスペースで区切られた含んでいます。1 <= M <= 100、 1 <= N <= 100。
nは整数0又は1のmライン後、モノクロ画像上の点の各画素の色を表します。隣接する二つの数字の間に単一のスペースで区切られています。
nは整数0又は1のM個の行の後、それは第二のウェブ上の単色画像の各画素の色を表します。隣接する二つの数字の間に単一のスペースで区切られています。
出力
2つの小数点以下の精度(パーセントで与えられる)の類似度を表す実数、。
サンプル入力
。3. 3
。1 1 0
0 0 1
。1 1 0
。1 1 0
0 0 1
0 0 1
出力例
44.44
#include<iostream>
using namespace std;
int main(){
int m,n;
scanf("%d %d",&m,&n);
int a[m+5][n+5];
int b[m+5][n+5];
//输入第一个图的像素位置
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++){
scanf("%d",&a[i][j]);
}
//输入第二个图的像素位置
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++){
scanf("%d",&b[i][j]);
}
//表示像素点相同的个数
int num=0;
//全部的像素点个数
int totalNum=m*n;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++){
if(a[i][j]==b[i][j])
num++;
}
//保留两位小数输出
printf("%.2f",100.00*num/totalNum);
return 0;
}