0
点赞
收藏
分享

微信扫一扫

数字矩阵(秋季每日一题 3)

木樨点点 2022-09-17 阅读 153


给定一个 的整数矩阵,其中第 行第 列的元素为

你可以进行任意多次如下操作:

选择矩阵中的两个相邻元素,将它们均乘以

同一个元素可以被选中多次。

你需要通过上述操作,使得矩阵中所有元素的和尽可能大。

计算并输出这个和的最大可能值。

输入格式
第一行包含整数 ,表示共有

每组数据第一行包含两个整数

接下来 行,每行包含 个整数,表示整个矩阵,其中第 行第 列的数为

输出格式
每组数据输出一行结果,表示矩阵的所有元素的最大可能和。

数据范围


输入样例:

2
2 2
-1 1
1 1
3 4
0 -1 -2 -3
-1 -2 -3 -4
-2 -3 -4 -5

输出样例:

2
30

#include<iostream>

using namespace std;

int main(){

int t;
cin >> t;
while(t--){

int n, m;
cin >> n >> m;

int x;
int mi = 1e8, sum = 0, cnt = 0;
for(int i = 0; i < n * m; i++){

cin >> x;
if(x < 0) cnt++;
mi = min(mi, abs(x));
sum += abs(x);
}

if(cnt % 2) cout << sum - 2 * mi << endl;
else cout << sum << endl;
}

return 0;
}


举报

相关推荐

0 条评论