精華區beta Marginalman 關於我們 聯絡資訊
861. Score After Flipping Matrix 有一個m*n的matrix 每一列都代表一個二進位數 可以把任意行、列的元素反轉(0->1、1->0) 請問在進行反轉後,這個matrix總和最大為多少? 思路: 首先先把每個第一行為0的列反轉 接著再去計算每一行0、1的數量 如果0的數量>1的數量就翻轉 接著就二進位轉十進位就可以求出答案了 golang code : func matrixScore(grid [][]int) int { n := len(grid) m := len(grid[0]) for i := 0; i < n; i++ { if grid[i][0] == 0 { for j := 0; j < m; j++ { grid[i][j] ^= 1 } } } sum := 0 for j := 0; j < m; j++ { cnt := 0 for i := 0; i < n; i++ { cnt += grid[i][j] } if cnt > (n-cnt) { sum += cnt * (1 << (m - 1 - j)) } else { sum += (n - cnt) * (1 << (m - 1 - j)) } } return sum } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.19.201 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1715601838.A.074.html
aioiwer318: 別卷了 05/13 20:05
SecondRun: 大師 05/13 20:06
wu10200512: 別卷了 05/13 20:16