給定n 個加號、m 個減號以及n + m + 1 個整數a1,a2,…,an+m+1
小明想知道在所有由這n 個加號、m 個減號以及n + m +1 個整數湊出的合法的字尾表示式中,結果最大的是哪乙個?
請你輸出這個最大的結果。
例如使用1 2 3 + -,則「2 3 + 1 -」 這個字尾表示式結果是4,是最大的。
第一行包含兩個整數n 和m。
第二行包含n + m + 1 個整數a1,a2,…,an+m+1
0<=n,m<=100000,-109<=ai<=109
輸出乙個整數,代表答案。
樣例輸入
1 11 2 3
樣例輸出
4
【題解】:1.作為倒數第二題,我開始乍一看以為排個序從大的開始加,然後剪掉小的就可以了,結果告訴我事情沒有那麼簡單。
2.因為是逆波蘭式所以,有加括號的效果,而且,可以加乙個很大的括號,除了乙個無法變正,其他負號都可以變正。
3.但是事情還是麼有那麼簡單,因為有負數。
(1)如果負數的個數等於總的個數,即所有的數都是負數,那麼,負負得正,結果為所有負數的絕對值之和
(2)如果負數的個數小於總個數,一定有乙個數不能轉為正式,那麼就得把絕對值大得負數轉為正數。
4.注意:m,n都是0~100000之間,那麼數字得個數是200000,陣列不要開小了
#include
#define ll long long
using
namespace std;
int a[
200005];
intmain()
sort
(a,a+all);if
(m)//有負號
else
ans-=2
*a[0]*
1ll;
} cout<}
藍橋杯2019初賽 字尾表示式
藍橋杯2019初賽 字尾表示式 時間限制 1 sec 記憶體限制 256 mb 題目描述 給定n 個加號 m 個減號以及n m 1 個整數a1,a2,an m 1 小明想知道在所有由這n 個加號 m 個減號以及n m 1 個整數湊出的合法的字尾表示式中,結果最大的是哪乙個?請你輸出這個最大的結果。例...
2019藍橋杯初賽 字尾表示式
藍橋賽前練練手 字尾表示式可以模擬任意加括號的結果 所以相當於給出n個加號,m個減號,n m 1個數,用這些任意組成乙個式子,使結果最大 用大寫字母表示正數,小寫字母表示負數 最優的情況是n m 1個數中,有n 1個正數,有m個非正數 即構成a b c d a b c形式 結果就是絕對值之和 在此基...
1467 藍橋杯2019初賽 字尾表示式
題目 給定n 個加號 m 個減號以及n m 1 個整數a1,a2,an m 1。小明想知道在所有由這n 個加號 m 個減號以及n m 1個整數湊出的合法的字尾表示式中,結果最大的是哪乙個?請你輸出這個最大的結果。例如使用1 2 3 則 2 3 1 這個字尾表示式結果是4,是最大的。思路 讀完題後,覺...