1899 985的最大和難題

2021-07-16 12:16:35 字數 1233 閱讀 5609

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。

輸出乙個整數代表可以得到的最大和。

2

21 1 1

2-10 20 -10

3

40

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組測試資料。每組...