HEU 百題解3201 最大值

2022-05-10 19:10:44 字數 1526 閱讀 6965

timelimit: 1 second   			memorylimit: 64 megabyte

description
給你乙個表示式,你可以通過在不同的地方新增括號從而改變式子的結果。比如1 + 2 * 3,如果是(1+2)*3結果是9,如果是1+2*3,結果是7,現在給你乙個這樣的式子,保證只有乘法和加法,但是也許會出現負數,求出這個式子通過不同的加括號方式,所能求得的最大結果。
input
多組資料,每組資料第一行給出乙個整數n(2<=n<=100),是所給式子的整數個數,下面包含表示式,所有整數和符號之間都會相隔乙個空格。
output
對於每組測試資料輸出乙個給出式子能算出的最大值。
sample input
4

1 + 2 * 3 + -1

sample output
8
動態規劃題:表示式加括號

易錯點:由於輸入的數中存在負數,因此可能會出現兩個負數相乘得到乙個很大整數的情況,因此在記錄是不僅要記錄最大值,還要記錄最小值

心得:使用結構體作為函式返回物件即可返回多個值~~

第一次自己做動態規劃題,除了上面說的兩個負數相乘問題忘了考慮,其他的狀態轉移都搞出來了(雖然是道水題),還是不錯滴~~

[c++]

1 #include2 #include3 #include4

5#define max 2000000000

6#define min -200000000078

using

namespace

std;

910 typedef struct

sth11

data;

1516 vectornum;

17 vectors;

18 data dp[100][100

];19

20 data cmp(int a,int b,int c,int

d)21

4445 data f(int m,int

n)46

54for(int i=m;i)

5565

else

if(s[i]=='*'

)6673}

74return

dp[m][n];75}

7677

78int

main()

7993

94for(int i=1;i)

95101 cin>>tempint;

102num.push_back(tempint);

103 cout<0,n-1).max<

104}

105106

return0;

107 }

最大值最小化 題解

題目描述 把乙個包含 n 個正整數的序列劃分為 m 個連續的子串行 每個正整數恰好屬於乙個序列 設第 i 個序列的各數之和為 s i 你的任務是讓所有 s i 的最大值盡量小。例如序列 1 2 3 2 5 4 劃分成 3 個序列的最優方案為 1 2 3 2 5 4,其中 s 1 s 2 s 3 分別...

HEU 百題解1001 誰是中間的那個

誰是中間的那個 timelimit 1 second memorylimit 64 megabyte totalsubmit 1292 accepted 198 description 一天,農夫喬伊像往常一樣來到了他的牧場,他突然對他的奶牛產奶量產生了興趣。他想知道產奶量處於中間的那頭奶牛的產奶量...

力扣題解 滑動視窗最大值

題目 給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。返回滑動視窗中的最大值。1 3 1 3 5 3 6 7 3 1 3 1 3 5 3 6 7 3 1 3 1 3 5 3 6 7 5 1 3 ...