http://codeforces.com/problemset/problem/554/B
题意:
扫地只能扫同一列,并且扫帚在 0 扫过后变成 1,在 1 扫过后变成 0。
问最后都为 1 的行数最多是多少。
思路:
当时没怎么理解,再一看给定的是二进制的字符串,直接两个for遍历相同的行数个数就行了。
AC CODE:
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
const int MYDD=113;
/*:如果她扫干净的广场,它将成为脏,如果她扫过一个肮脏的广场,它将变得干净。
她想打扫房间的一些列的行数最大化完全干净。
不允许扫描在列的一部分,Ohana只能扫描整个列*/
int main() {
int n;
char Map[MYDD][MYDD];
scanf("%d",&n);
for(int j=0; j<n; j++) {
scanf("%s",Map[j]);
}
int ans=0,now=0;
for(int j=0; j<n; j++) {
now=1;
for(int k=j+1; k<n; k++) {
if(strcmp(Map[j],Map[k])==0) now++;
}
ans=max(now,ans);
}
printf("%d\n",ans);
return 0;
}
/*
3
111
101
111
*/