classSolution{public:intmatrixScore(vector<vector<int>>&grid){constintm=grid.size();constintn=grid[0].size();intans=0;// Flip rows with leading 0for(auto&row:grid)if(row[0]==0)flip(row);// Flip cols with 1s < 0sfor(intj=0;j<n;++j)if(onesColCount(grid,j)*2<m)flipCol(grid,j);// Add binary number for each rowfor(constvector<int>&row:grid)ans+=binary(row);returnans;}private:voidflip(vector<int>&row){for(inti=0;i<row.size();++i)row[i]^=1;}intonesColCount(constvector<vector<int>>&grid,intj){intones=0;for(inti=0;i<grid.size();++i)ones+=grid[i][j];returnones;}voidflipCol(vector<vector<int>>&grid,intj){for(inti=0;i<grid.size();++i)grid[i][j]^=1;}intbinary(constvector<int>&row){intres=row[0];for(intj=1;j<row.size();++j)res=res*2+row[j];returnres;}};
classSolution{publicintmatrixScore(int[][]grid){finalintm=grid.length;finalintn=grid[0].length;intans=0;// Flip rows with leading 0for(int[]row:grid)if(row[0]==0)flip(row);// Flip cols with 1s < 0sfor(intj=0;j<n;++j)if(onesColCount(grid,j)*2<m)flipCol(grid,j);// Add binary number for each rowfor(int[]row:grid)ans+=binary(row);returnans;}privatevoidflip(int[]row){for(inti=0;i<row.length;++i)row[i]^=1;}privateintonesColCount(int[][]grid,intj){intones=0;for(inti=0;i<grid.length;++i)ones+=grid[i][j];returnones;}privatevoidflipCol(int[][]grid,intj){for(inti=0;i<grid.length;++i)grid[i][j]^=1;}privateintbinary(int[]row){intres=row[0];for(intj=1;j<row.length;++j)res=res*2+row[j];returnres;}}
classSolution:defmatrixScore(self,grid:List[List[int]])->int:# Flip rows with leading 0forrowingrid:ifrow[0]==0:self._flip(row)# Flip cols with 1s < 0sforj,colinenumerate(list(zip(*grid))):ifsum(col)*2<len(grid):self._flipCol(grid,j)# Add binary number for each rowreturnsum(self._binary(row)forrowingrid)def_flip(self,row:List[int])->None:foriinrange(len(row)):row[i]^=1def_flipCol(self,grid:List[List[int]],j:int)->None:foriinrange(len(grid)):grid[i][j]^=1def_binary(self,row:List[int])->int:res=row[0]forjinrange(1,len(row)):res=res*2+row[j]returnres