首页 > 其他 > 详细

B. Ohana Cleans Up

时间:2015-07-17 18:27:39      阅读:195      评论:0      收藏:0      [点我收藏+]

题目链接:http://codeforces.com/problemset/problem/554/B

题目大意:

      奥哈马清理一间被分成n*n格的房间,每格使用数字‘1’和‘0’来表示状态,单格用1表示,则表明是干净的,用0表示则是脏的。清理时,奥哈马只能一整列的打扫,而且被打扫的单格如果是干净(1)的就会变脏(0),而如果是脏(0)的就会变干净(1)。清理的列数不定,问他清理后最多有多少行能完全干净?

案例:    

 

        Input
        4
0101
1000
1111
0101
        Output
        2
        Input
        3
111
111
111
        Output
        3

 

题目分析:

     不计列数清理多少次,则可忽略此处条件,从行数考虑。行与行相同则清理后结果相同,所以本题可以从行之间相同的初始状态着手,计算出最大的行相同数即为所求。

源代码:

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 #define max 100
 5 int main()
 6 {
 7     int n,p,x=0,i;
 8     string s[max];
 9     cin>>n;//输入行(列)数
10     for(i=0;i<n;i++)
11        cin>>s[i];//输入每行的初始状况
12     for(i=0;i<n;i++)
13     {  for(int j=0;j<n;j++)
14           if(s[i]==s[j])
15              p++;//找出具有相同状态的行数
16        if(p>x) x=p;//将最大的行数赋值给x
17        p=0;
18     }
19     cout<<x<<endl;
20     return 0;
21 }

 

    

 

B. Ohana Cleans Up

原文:http://www.cnblogs.com/huaszjh/p/4654960.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!