题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=187195
题意:
一组数据只有0和1,0表示地板是脏的,1表示地板是干净的,现在,拖地板只能一列一列的拖,被拖的0会变为1,1会变为0,需找出最多可以有多少行地板是完全干净的。
(可以不拖地板)
案例:
1)input
4
0101
1000
1111
0101
output
2
2) input
3
1 1 1
1 1 1
1 1 1
output
3
思路分析:
分析题可知,只要找出相同的行数中最多可以有几行,那就是需要输出的数,数组最好为string型,这样在每行数进行比较时就可以直接比较。
在比较时,找出所有相同的字符串的个数p,利用打擂台的方法把最大的存入那个存入另一个变量x中,输出那个变量。
需注意p要赋初值的地方与x不同。
源代码如下:
1 #include<iostream> 2 #include<string> 3 #define max 100 4 using namespace std; 5 int main() 6 { 7 int n,i,j,x=0,p; 8 string a[max]; 9 cin>>n; 10 for(i=0;i<n;i++) 11 cin>>a[i]; 12 for(i=0;i<n;i++) 13 { 14 p=0; 15 for(j=i;j<n;j++) 16 { 17 if(a[i]==a[j]) 18 p++; 19 } 20 if(p>x) 21 x=p; 22 } 23 cout<<x<<endl; 24 return 0; 25 }
时间: 2024-10-17 22:40:49