2019藍橋杯初賽 字尾表示式

2022-03-01 17:35:07 字數 787 閱讀 2146

藍橋賽前練練手~~

字尾表示式可以模擬任意加括號的結果

所以相當於給出n個加號,m個減號,n+m+1個數,用這些任意組成乙個式子,使結果最大

用大寫字母表示正數,小寫字母表示負數

最優的情況是n+m+1個數中,有n+1個正數,有m個非正數

即構成a+b+c+d-a-b-c形式

結果就是絕對值之和

在此基礎上

如果減號多了,說明需要給正數前分配減號

1、如果有非正數,那麼可以構成a-(a-b)=a-a+b,依然是絕對值之和

2、如果全是正數,那麼可以構成a-(b-c)=a-b+c,顯然需要b最小,結果就是絕對值之和-2*最小正數

如果加號多了,說明需要給負數前分配加號

1、如果沒有減號,那麼只能是a+a+b,結果就是所有數的和

2、如果有減號而且有正數,那麼可以構成a-(a+b)=a-a-b,結果是絕對值之和

如果有減號而且沒有正數,a-(b+c)=a-b-c,需要a最大,結果就是絕對值之和+2*最大非正數

#include#include

using

namespace

std;

#define n 100001

intmain()

if(m==s2) printf("

%lld

",sa+sb);

else

if(m>s2)

else

else printf("

%lld

",sa-sb);

}}

藍橋杯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 個整數a1,a2,an m 1 小明想知道在所有由這n 個加號 m 個減號以及n m 1 個整數湊出的合法的字尾表示式中,結果最大的是哪乙個?請你輸出這個最大的結果。例如使用1 2 3 則 2 3 1 這個字尾表示式結果是4,是最大的。第一行包含兩個整數n ...

1467 藍橋杯2019初賽 字尾表示式

題目 給定n 個加號 m 個減號以及n m 1 個整數a1,a2,an m 1。小明想知道在所有由這n 個加號 m 個減號以及n m 1個整數湊出的合法的字尾表示式中,結果最大的是哪乙個?請你輸出這個最大的結果。例如使用1 2 3 則 2 3 1 這個字尾表示式結果是4,是最大的。思路 讀完題後,覺...