JzxxOJ 1310【入门】奶牛的相似性


一:题目


农夫约翰有两头奶牛,他想要知道,这两头奶牛到底有多相似,所以他给每头奶牛拍了MN(指M行N列)的数码相片,他想要你写一个程序帮助他。 MN的数码相片可以分辨出奶牛身上黑色和白色的斑块,下面是两头奶牛的数码照片(‘X’表示黑色部分,‘.’表示白色部分),其中M=5,N=7。
奶牛1 奶牛2
…X… …X…
.XXX… …XX…
.XX… .XX…
…X. .XX…X.
.X…X. .X…X.
要比较这两头奶牛,照片上的每一部分都必须仔细检查。每一个小块将有一个“相似性的得分”,相同得1分,不相同得0分。上面的那两头奶牛可以得到30分,因为他们只有5个地方不相同(详见下图中的“#”)。
++##+++
+#+++++
+++++++
+##++++
+++++++
现在给你两头奶牛的照片,你的任务就是找出它们的“相似性得分”。
输入
第一行包含两个用空格隔开的整数M和N,其中M和N都不超过50,表示两头奶牛的数码相片都是M行N列的。
第2行到第M+1行为奶牛一的数码照片。
第M+2行到第2*M+1行为奶牛二的照片。 为方便处理我们用1表示黑色部分,用0表示白色部分,相邻两个数字之间用一个空格隔开。(详见样例)

输出
仅一行,包含一个整数,表示要求的两头奶牛的“相似性得分”。
5 7

输入

0 0 1 0 0 0 0
0 1 1 1 0 0 0
0 1 1 0 0 0 0
0 0 0 0 0 1 0
0 1 0 0 0 1 0
0 0 0 1 0 0 0
0 0 1 1 0 0 0
0 1 1 0 0 0 0
0 1 1 0 0 1 0
0 1 0 0 0 1 0

输出

30

二:代码


其实这道题蛮简单的,只不过题目长一些,萌新可能刚开始看不懂题目,下面我会以最简单的代码,最基础的代码完成这道题,废话不多说,直接上代码。

#include 
using namespace std;//头文件
int main(){
    int m,n,i,j,l,k,s=0;
    cin >> m >> n;//输入几行几列
    int a[m][n];//奶牛1
    int b[m][n];//奶牛2
    for(i=0;i<m;i++){
    	for(j=0;j<n;j++){
    		cin >> a[i][j];//奶牛1
		}
	}
	for(i=0;i<m;i++){
    	for(j=0;j<n;j++){
    		cin >> b[i][j];//奶牛2
		}
	}
	for(l = 0;l<m;l++){
		for(k=0;k<n;k++){
         if(a[l][k]==b[l][k]){//如果奶牛1和奶牛2有相似的地方,得分加1
         	s=s+1;
		 }
		}
	}
	cout << s;//输出
    
	return 0;
}

你可能感兴趣的:(JzxxOJ 1310【入门】奶牛的相似性)