861. 翻转矩阵后的得分 贪心

news/2024/11/9 10:14:07/

有一个二维矩阵 A 其中每个元素的值为 0 或 1 。

移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。

在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。

返回尽可能高的分数。

 

示例:

输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]
输出:39
解释:
转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]]
0b1111 + 0b1001 + 0b1111 = 15 + 9 + 15 = 39
 

提示:

1 <= A.length <= 20
1 <= A[0].length <= 20
A[i][j] 是 0 或 1

#看着很难,自己做了才发现其实也就这样。。

int matrixScore(int** A, int ASize, int* AColSize){int flag=0;for(int i=0;i<ASize;i++){if(A[i][0]!=1){for(int j=0;j<*AColSize;j++){A[i][j]=abs(A[i][j]-1);}}}for(int i=0;i<*AColSize;i++){int tmp=0;for(int j=0;j<ASize;j++){tmp+=A[j][i];}if(tmp<=ASize/2){for(int j=0;j<ASize;j++){A[j][i]=abs(A[j][i]-1);}}}//printf("%d\n",3/2);// for(int i=0;i<ASize;i++){//     for(int j=0;j<*AColSize;j++){//         printf("%d,",A[i][j]);//     }//     printf("\n");// }int sum=0;for(int i=0;i<ASize;i++){for(int j=0;j<*AColSize;j++){printf("%d\n",*AColSize-j-1);sum+=pow(2,*AColSize-j-1)*A[i][j];}}return sum;
}

 


http://www.ppmy.cn/news/675955.html

相关文章

LeetCode 861. 翻转矩阵后的得分

原题目&#xff1a;https://leetcode-cn.com/problems/score-after-flipping-matrix/ 思路&#xff1a; 先试用行变换&#xff0c;把每一行的第一个都变成1&#xff0c;然后从第二列开始检查&#xff0c;保证每一列1的个数比0多。 代码&#xff1a; class Solution { public:…

LeetCode 861翻转矩阵后得分详细解法

1. 题目内容 有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列&#xff0c;并转换该行或列中的每一个值&#xff1a;将所有 0 都更改为 1&#xff0c;将所有 1 都更改为 0。 在做出任意次数的移动后&#xff0c;将该矩阵的每一行都按照二进制数来解释&a…

厦门大学861语言学考研参考书目

一、考试科目代码及名称 861语言学 二、适用专业 中文系&#xff1a;语言学及应用语言学、汉语言文字学 海外教育学院&#xff1a;语言学及应用语言学、对外汉语教学 三、参考书目 1.《古代汉语》王力&#xff0c;中华书局&#xff0c;2000年。&#xff08;非计算语言学专业…

**Leetcode 861. Score After Flipping Matrix

先写的状压&#xff0c;因为数据说只有<20 然后挂了。。 贪心 class Solution { public:int matrixScore(vector<vector<int>>& A) {if (!A.size() || !A[0].size()) return 0;for (int i 0; i < A.size(); i) {if (!A[i][0]) {for (int j 0; j <…

银灰的拳击机器人_iRobot 861扫地机器人正面外观_iRobot Roomba 861_家电小家电-中关村在线...

●外观(正面) iRobot 861扫地机器人外包装以白色为主色调&#xff0c;风格简约&#xff0c;包装正面标明了产品的外观和型号&#xff0c;让人一目了然。 iRobot 861扫地机器人外包装 主机颜色采用银灰色黑色的美式经典搭配&#xff0c;整体机器是传统的圆形&#xff0c;圆润的体…

leetcode 861.翻转矩阵后的得分

leetcode 861.翻转矩阵后的得分 题目描述 有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列&#xff0c;并转换该行或列中的每一个值&#xff1a;将所有 0 都更改为 1&#xff0c;将所有 1 都更改为 0。 在做出任意次数的移动后&#xff0c;将该矩阵…

Codeforces 861 A k-rounding 数论

题目链接&#xff1a; http://codeforces.com/contest/861/problem/A 题目描述&#xff1a; 给你一个n, 一个k, 让你求n的所有倍数至少以k个0结尾的那个数 解题思路&#xff1a; 质因数分解出2&#xff0c; 5&#xff0c; 如果min(cnt2, cnt5) > k, 直接输出&#xff0c; 剩…

AcWing 861. 二分图的最大匹配

861. 二分图的最大匹配 - AcWing题库 AcWing 861. 二分图的最大匹配 - AcWing #include<iostream> #include<cstring> using namespace std; const int N 510; const int M 1e510; int n1,n2,m; //我们用邻接表存储n1到n2的边就可以啦 int h[N],e[M],ne[M],idx…