• 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 }

              

  • 相关阅读:
    POJ1821 Fence 单调队列优化DP
    ZOJ 4114 dp
    2019 Multi-University Training Contest 2
    Fibonacci 矩阵乘法入门
    C
    258. Add Digits
    292. Nim Game
    345. Reverse Vowels of a String
    344. Reverse String
    169. Majority Element
  • 原文地址:https://www.cnblogs.com/q-c-y/p/4656262.html
Copyright © 2020-2023  润新知