精華區beta Marginalman 關於我們 聯絡資訊
※ 引述 《JIWP (神楽めあ的錢包)》 之銘言: :   : 861. Score After Flipping Matrix :   : 有一個m*n的matrix :   : 每一列都代表一個二進位數 :   : 可以把任意行、列的元素反轉(0->1、1->0) :   : 請問在進行反轉後,這個matrix總和最大為多少? :   : 思路: :   : 首先先把每個第一行為0的列反轉 :   : 接著再去計算每一行0、1的數量 :   : 如果0的數量>1的數量就翻轉 :   : 接著就二進位轉十進位就可以求出答案了 :   思路: 差不多 反正越左邊越大越優先 所以都從左開始弄 然後全部加起來 class Solution { public: void lr(vector<vector<int>>& grid,int n ) { for(int i = 0 ; i < grid[0].size() ; i ++) { grid[n][i] ^= 1; } } void td(vector<vector<int>>& grid,int m ) { for(int i = 0 ; i < grid.size() ; i ++) { grid[i][m] ^= 1; } } int matrixScore(vector<vector<int>>& grid) { int n = grid.size(); int m = grid[0].size(); for(int i = 0 ; i < n ; i ++) { if(grid[i][0] == 0) { lr(grid , i); } } for(int i = 0 ; i < m ; i ++) { int now = 0; for(int j = 0 ; j < n ; j ++) { now += grid[j][i]; } if(now <= n/2) { td(grid , i); } } int res = 0; for(int i = 0 ; i < n ; i ++) { for(int j = 0 ; j < m ; j ++) { if(!grid[i][j])continue; res += pow(2 , m - j - 1); } } return res; } }; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.142.93 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1715606490.A.181.html
sixB: 大師 05/13 21:21
wu10200512: 你怎麼那麼強 05/13 21:22
oinishere: 寶 我程設作業寫不出來 05/13 21:23
sixB: 你喜歡從大的開始弄嗎 05/13 21:23
oinishere: 也不是算喜歡八 這題只能從大的弄 05/13 21:24
sixB: 平常私底下呢 05/13 21:28
oinishere: 我只跟靈夢做愛厚 05/13 21:29
JIWP: 臭甲 05/13 21:29