[蓝桥杯][2019年第十届真题]后缀表达式(正解!!)
題目描述
給定 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。
輸出
輸出一個數,表示答案
樣例輸入
1 1
1 2 3
樣例輸出
4
提示
對于所有評測用例,0 ≤ N, M ≤ 100000,?109 ≤ Ai
思路:今天之前還以為去年的思路沒啥問題呢。。
這個題目的一大坑點是后綴表達式是可以加括號的,意思也就是,可以將負號變為正號。
例如:n=1,m=1,數組元素依次為-1,-2,3,最終結果為3-((-1)+(-2))。而不是3+(-1)-(-2)。
明白了這一點我們就要考慮負數和所有數的關系了。
如果有負數存在的話:
①如果負數的個數num不等于n+m+1的話,我們是可以通過加括號的形式,將所有的減號變為加號的。
②如果負數的個數num等于n+m+1的話,肯定會留出一個負數來,無法通過加括號的形式變為正的,那么就只能加上這個負數,貪心去想,肯定是負數中最大的那個。
如果說沒有負數的話,那么只能減去最小的那個數,剩下的就可以通過加括號的形式變為加了。
代碼如下:
努力加油a啊,(o)/~
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的[蓝桥杯][2019年第十届真题]后缀表达式(正解!!)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝牙耳机对身体有害没(蓝牙无线技术)
- 下一篇: [蓝桥杯][2019年第十届真题]外卖店