藍橋賽前練練手~~
字尾表示式可以模擬任意加括號的結果
所以相當於給出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#includeusing
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,是最大的。思路 讀完題後,覺...