time limit: 1 sec
memory limit: 128 mb
985有2 * n - 1個整數,他每次可以將其中n個數變號,操作次數不限,問他可以得到的最大和。
第一行輸入乙個整數t,代表有t組測試資料。
每組資料佔兩行,第一行輸入乙個整數n,下面一行輸入2*n-1個整數a。
注:1 <= t <= 32,1 <= n <= 1e3,-1e3 <= a <= 1e3。
輸出乙個整數代表可以得到的最大和。
221 1 1
2-10 20 -10
340
n=3時的負數變化
(0為負數1為正數)
有乙個:
0 1 1 1 1
1 0 0 1 1
1 0 1 0 0
1 1 1 1 1
有兩個:
0 0 1 1 1
0 1 0 0 1
1 1 1 1 1
有三個:
0 0 0 1 1
1 1 1 1 1
總結規律:
負數正數
02n-1
n n-1
12n-2
n-1n
3 2n-4
n-3
n+2……
……可發現若n為奇數時
總可以把負數全部變為正數
當n為偶數時
每次能改變偶數個負數
所以若負數的個數為偶數個
也能全部變為正數
當負數的個數為奇數個
總會留下乙個數為負數
(但不一定是原來就有的負數)
為了讓總和最大
可以使絕對值最小的數為負數
[cpp]view plain
copy
print?
#include
intmain()
if(res>t)
res=t;
sum+=t;
}
if(n&1||cnt%2==0)
printf("%d\n"
,sum);
else
printf("%d\n"
,sum-2*res);
}
return
0;
}
zzuli 1899 985的最大和難題
985有2 n 1個整數,他每次可以將其中n個數變號,操作次數不限,問他可以得到的最大和。第一行輸入乙個整數t,代表有t組測試資料。每組資料佔兩行,第一行輸入乙個整數n,下面一行輸入2 n 1個整數a。注 1 t 32,1 n 1e3,1e3 a 1e3。輸出乙個整數代表可以得到的最大和。221 1...
zzulioj 1899 985的最大和難題
985的最大和難題 time limit 1 sec memory limit 128 mb submit 285 solved 29 submitstatusweb board description 985有2 n 1個整數,他每次可以將其中n個數變號,操作次數不限,問他可以得到的最大和。inp...
1899 985的最大和難題(好題)
time limit 1 sec memory limit 128 mb submit 291 solved 31 submit status web board 985有2 n 1個整數,他每次可以將其中n個數變號,操作次數不限,問他可以得到的最大和。第一行輸入乙個整數t,代表有t組測試資料。每組...