解いた問題

9/13/2012

SRM555 Div2 Easy

255

やるだけ。



  1. int f(vector<string> v)  
  2. {  
  3.   int sum = 0;  
  4.   for (int i = 0; i < v.size(); ++i) {  
  5.     for (int j = 0; j < v[i].size(); ++j) {  
  6.       sum += v[i][j] == '1';  
  7.     }  
  8.   }  
  9.   return sum;  
  10. }  
  11.   
  12. class XorBoardDivTwo {  
  13. public:  
  14.   int theMax(vector <string> B)  
  15.   {  
  16.     int mx = 0;  
  17.   
  18.     const int H = B.size();  
  19.     const int W = B[0].size();  
  20.   
  21.     for (int i = 0; i < H; ++i) {  
  22.       for (int j = 0; j < W; ++j) {  
  23.         for (int k = 0; k < W; ++k) B[i][k] = (B[i][k] == '0' ? '1' : '0');  
  24.         for (int k = 0; k < H; ++k) B[k][j] = (B[k][j] == '0' ? '1' : '0');  
  25.         mx = max(mx, f(B));  
  26.         for (int k = 0; k < W; ++k) B[i][k] = (B[i][k] == '0' ? '1' : '0');  
  27.         for (int k = 0; k < H; ++k) B[k][j] = (B[k][j] == '0' ? '1' : '0');  
  28.       }  
  29.     }  
  30.   
  31.     return mx;  
  32.   }  
  33. };