ETH官方钱包

切換
舊版
前往
大廳
主題

ZeroJudge - e573: 10700 - Camel trading 解題心得

Not In My Back Yard | 2019-12-21 23:47:50 | 巴幣 0 | 人氣 250

題目連結(jié):


題目大意:
給定一正整數(shù) N ,代表有 N 筆測(cè)試資料。每筆佔(zhàn)一列,每列給定一只包含數(shù)字、「+」和「*」的運(yùn)算式。

如果無(wú)視加跟乘在數(shù)學(xué)上的運(yùn)算優(yōu)先度,試問(wèn)該運(yùn)算式所能得到的最大值及最小值分別為多少?



範(fàn)例輸入:
3
1+2*3*4+5
4*18+14+7*10
3+11+4*1*13*12*8+3*3+8


範(fàn)例輸出:
The maximum and minimum are 81 and 30.
The maximum and minimum are 1560 and 156.
The maximum and minimum are 339768 and 5023.


解題思維:
要使一只包含 + 、 * 的運(yùn)算式盡可能地大,要使乘數(shù)以及被乘數(shù)越大越好。因此,先將所有的加法算完,再算乘法,即可得最大值。

相似地,要得最小值就先算乘法,再算加法,即可得出。

而運(yùn)算的方法可以用一般求運(yùn)算式值的方法(見(jiàn)這題),只是算最大值時(shí)是先加後乘,而最小值是先乘後加。

此次分享到此為止,如有任何更加簡(jiǎn)潔的想法或是有說(shuō)明不清楚之地方,也煩請(qǐng)各位大大撥冗討論。
追蹤 創(chuàng)作集

作者相關(guān)創(chuàng)作

更多創(chuàng)作