Ohana Cleans Up0101

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

 

          

 

你可能感兴趣的:(HANA)