题目链接: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 }

 

          

 

posted on 2015-07-18 09:46  尘埃。  阅读(129)  评论(0编辑  收藏  举报