hdu 2830 Matrix Swapping II

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2830

又是和1505一个类型的。。。



下面是AC代码:

#include <iostream>
using namespace std;
const int N = 1002;
char a;  
int h[N], hash[N];
int n, m;

int main()
{
	int max;
	while (scanf("%d %d", &n, &m) != EOF)
	{
		int i, j;
		for (j=0; j<m; j++)
			h[j] = 0;

		max = 0;

		for (i=0; i<n; i++)
		{
			getchar();

			for (j=0; j<N; j++)
				hash[j] = 0;    

			for (j=0; j<m; j++)
			{
				scanf("%c", &a);

				if (a == '1')
					h[j] += 1;
				else
					h[j] = 0;

				hash[h[j]]++;
			}
			int tf=0;
			
			for (j=N-2; j>=0; j--)
			{
				hash[j] += hash[j+1];

				tf = j*hash[j];

				if (max < tf)
					max = tf;
			}	
		}

		printf("%d\n", max);
	}
	return 0;
}


你可能感兴趣的:(c,Matrix)