B. Numbers Box(思維)
題目傳送門
題目大意
給你一個
n
∗
m
n*m
n∗m的矩陣,你可以選擇兩個相鄰的單元,然後將兩個值分別乘以-1
求任意次操作後,整個矩陣的數值的最大和
思路
顯然,兩個負數無論相差多選都可以相互抵消
顯然,一個0可以抵消任意多個任意距離的負數
所以統計矩陣中負數出現的個數和標記0是否出現即可
奇數個負數時,使整個矩陣最小的數(無論正負)為唯一負數即可
AC Code
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<math.h>
using namespace std;
#define endl '\n'
#define INF 0x3f3f3f3f
// #define int long long
#define debug(a) cout<<#a<<"="<<a<<endl;
typedef long long ll;
const double PI=acos(-1.0);
const double e=exp(1.0);
const int M=1e9+7;
const int N=2e5+7;
inline int mymax(int x,int y){return x>y?x:y;}
inline int mymin(int x,int y){return x<y?x:y;}
int n, m, x;
int flag, cnt, sum;
void solve(){
flag=cnt=sum=0;
int mn=INF;
cin>>n>>m;
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
cin>>x;
if(x==0) flag=1;
if(x<0) cnt++;
mn=mymin(mn,fabs(x));
sum+=fabs(x);
}
}
if(flag || !(cnt&1)) cout<<sum<<endl;
else{
cout<<sum-mn-mn<<endl;
}
return ;
}
signed main(){
int T;
cin>>T;
while(T--) solve();
return 0;
}
相關文章
- 2020ICPC 江西省賽 B. Apple(思維)APP
- 思維體系---技術思維、業務資料思維、產品思維、複合思維
- 淺析工具思維、產品思維、品牌思維與定位
- 求職思維和招聘思維求職
- 把流量思維變成留量思維
- 框架思維框架
- 極思維
- 黑客思維黑客
- 你是整體思維還是分析思維? - kentbeck
- 計算思維
- 模型思維(01)模型
- 提升思維邏輯—SimpleMind Pro(思維導圖) for Mac/winMac
- 什麼是產品思維和專案思維? - Shreyas
- 《計算思維史話》思維導圖——持續更新
- 創新思維框架:第一原則思維 - Neil Kakkar框架
- Reversed Numbers
- cf449D. Jzzhu and Numbers(容斥原理 高維字首和)
- 英語思維與物件導向分析思維的關係物件
- 運維工程師思維導圖運維工程師
- 400多種Numbers模板 DesiGN for Numbers Templates for macMac
- typora思維導圖
- 技術思維2
- 前端思維導圖前端
- Java思維理清思路Java
- HDU – 4811 – Ball (思維)
- 程式碼之外系列第一:索證思維與索進思維
- B. 酒杯
- Xmind使用教程:給思維導圖加水印 「Xmind思維導圖2023」
- 思維決定命運,從四個方面理解深度思維的概念
- Collecting Numbers II
- Codeforces - Jzzhu and Numbers
- 什麼是Actor思維?
- 觀潮思維導圖
- 程式設計師思維程式設計師
- 思維導圖Xmind 2022
- 前端思維導圖 8前端
- 英語?思維導圖?
- Bob in Wonderland(思維+構造)