acwing 3763.数字矩阵
解题思路:
对于任意位置的变换都是成对变换相邻元素,变换过程中有传递性(改变一个位置的符号就会改变相邻位置的符号)对应矩阵的各个位置的符号都是可以通过这个特性改变,对于存在奇数个负数进行变化之后,只会剩下一个负数,当只有一个负数要使矩阵和max,对应的就是让矩阵中绝对值最小的数为负
2.实现代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int n,m;
cin>>n>>m;
int cnt=0,sum=0,minw=1e8;
for(int i=0;i<n*m;i++)
{
int x;
cin>>x;
sum+=abs(x);
minw=min(minw,abs(x));
if(x<0) cnt++;
}
if(cnt%2) cout<<sum-2*minw<<endl;
else cout<<sum<<endl;
}
return 0;
}
作者:Ac_C++
链接:https://www.acwing.com/solution/content/23164/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。