在一个矩形的灰度图像上,每个像素点或者是黑色的或者是白色的。黑色像素点用1 表示,白色像素点用0 表示。现在要求你编写一个程序,计算每列上黑色像素点的个数并输出。如下图所示是一个6∗8 的黑板图像。
1 1 0 0 1 1 1 1
0 1 1 0 1 0 1 0
1 1 1 1 0 1 1 0
0 1 1 0 0 1 0 0
1 0 1 0 0 1 0 0
0 1 0 1 0 1 1 0
输入有多组组。
每组的第一行有2
个整数m
、n
,(1<=m
,n<=100
)。
接着有m
行,每行有n
个数字,每个数字是0
或1
,之间用一个空格分开。
对图像数据,依次一行输出图像中每列黑色像素点的总数。
复制
3 5 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 6 8 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0
2 3 2 1 2 3 5 4 2 2 5 4 1
没啥好说的.......
1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<stack> 5 #include<set> 6 #include<queue> 7 #include<vector> 8 #include<map> 9 #include<iostream> 10 #include<algorithm> 11 #define MAXN 1010000 12 #define LL long long 13 #define ll __int64 14 #define INF 0xfffffff 15 #define mem(x) memset(x,0,sizeof(x)) 16 #define PI acos(-1) 17 #define eps 1e-8 18 using namespace std; 19 int main() 20 { 21 int n,m; 22 while(cin>>n>>m){ 23 vector<int>Ve; 24 int Mp[200][200]; 25 for(int i=1;i<=n;i++){ 26 for(int j=1;j<=m;j++){ 27 cin>>Mp[i][j]; 28 } 29 } 30 for(int i=1;i<=m;i++){ 31 int ans=0; 32 for(int j=1;j<=n;j++){ 33 if(Mp[j][i]==1){ 34 ans++; 35 } 36 } 37 Ve.push_back(ans); 38 } 39 cout<<Ve[0]; 40 for(int i=1;i<Ve.size();i++){ 41 cout<<" "<<Ve[i]; 42 } 43 cout<<endl; 44 } 45 return 0; 46 }