九度oj 1001 A+B for Matrices 2011年浙江大学计算机及软件工程研究生机试真题
题目1001:A+B for Matrices
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:15235
解决:6172
- 题目描述:
-
This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns.
- 输入:
-
The input consists of several test cases, each starts with a pair of positive integers M and N (≤10) which are the number of rows and columns of the matrices, respectively. Then 2*M lines follow, each contains N integers in [-100, 100], separated by a space. The first M lines correspond to the elements of A and the second M lines to that of B.
The input is terminated by a zero M and that case must NOT be processed.
- 输出:
-
For each test case you should output in one line the total number of zero rows and columns of A+B.
- 样例输入:
-
2 2 1 1 1 1 -1 -1 10 9 2 3 1 2 3 4 5 6 -1 -2 -3 -4 -5 -6 0
- 样例输出:
-
1 5
- 来源:
- 2011年浙江大学计算机及软件工程研究生机试真题
- 分析:
- 读懂题意就OK
1 #include<iostream> 2 #include<queue> 3 #include<cstdio> 4 #include<cstring> 5 #include<cmath> 6 #include<algorithm> 7 using namespace std; 8 int map[15][15]; 9 int main(){ 10 int m,n; 11 while(scanf("%d",&m)&&m){ 12 scanf("%d",&n); 13 int i,j; 14 for(i=0;i<m;i++){ 15 for(j=0;j<n;j++){ 16 scanf("%d",&map[i][j]); 17 } 18 } 19 for(i=0;i<m;i++){ 20 for(j=0;j<n;j++){ 21 int t; 22 scanf("%d",&t); 23 map[i][j]+=t; 24 } 25 } 26 int sum=0; 27 for(i=0;i<m;i++){ 28 for(j=0;j<n;j++){ 29 if(map[i][j]) 30 break; 31 } 32 if(j==n) 33 sum++; 34 } 35 for(i=0;i<n;i++){ 36 for(j=0;j<m;j++){ 37 if(map[j][i]) 38 break; 39 } 40 if(j==m) 41 sum++; 42 } 43 cout<<sum<<endl; 44 } 45 return 0; 46 }