時間限制:
1000 ms | 記憶體限制:65535 kb
難度:3
描述
小明和小紅在打賭說自己數學學的好,於是小花就給他們出題了,考考他們誰nb,題目是這樣的給你n個數
在這n個數之間新增n-1個*或+,使結果最大,但不可以打亂原順序,請得出這個結果
如1 3 5
結果是(1+3)*5=20;最大
可以新增若干個括號,但一定要保證配對,但是每兩個數之間只可能有乙個*或+
數列最前和最後不應有+或乘
小明想贏小紅但是他比較笨,請你幫幫他
輸入多組測試資料以eof結束,每組有乙個n(n<10000),然後有n個正整數a[i](1<=a[i]<=20)
輸出輸出最大的結果由於結果比較大,結果對10086取餘
樣例輸入
31 2 3
35 1 2
樣例輸出
915
題目解析:
本道題其實就是就是找 1,並分情況處理 1,考慮將其加到它的前邊某個數上或它的下乙個數上。
示例**:
1 #include2 #include3 using namespace std;4 5 #define max_num 10001
6 7 int num[max_num]; //儲存輸入的數
8 int mark[max_num]; //標記,當不需要計算時,置-1
9 10 int main()
11 24 if (num[n-1] == 1) //如果最後乙個數為1
25
29
30 int tmp;
31 for (int i = 1;i < n-1; i++) //中間的數
32
41
42 if (num[tmp] <= num[i+1] || num[tmp] == 2) //利用貪心思想考慮將這個1加到它的前邊還是後邊
43 //(1)如果找到它的前邊那個不為1的數,且小於等於它的下乙個數 或
44 //(2)它的前邊那個不為1的數為2,則加到前邊那個不為1的數上邊
45 num[tmp]++;
46 else//否則加到它的下乙個數上
47 num[i+1]++;
48 }
49 }
50
51 int ans = 1;
52 for (int i = 0; i < n; i++)
53
57 printf("%d\n", ans);
58 }
59
60 }
九度OJ 1170 找最小數
題目1170 找最小數 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 5464 解決 2415 題目描述 第一行輸入乙個數n,1 n 1000,下面輸入n行資料,每一行有兩個數,分別是x y。輸出一組x y,該組資料是所有資料中x最小,且在x相等的情況下y最小的。輸入 輸入有多組資料。...
NYOJ1170 最大的數
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 小明和小紅在打賭說自己數學學的好,於是小花就給他們出題了,考考他們誰nb,題目是這樣的給你n個數 在這n個數之間新增n 1個 或 使結果最大,但不可以打亂原順序,請得出這個結果 如 1 3 5 結果是 1 3 5 20 最大 可...
NYOJ 1170 最大的數
時間限制 1000 ms 記憶體限制 65535 kb 難度 3描述 小明和小紅在打賭說自己數學學的好,於是小花就給他們出題了,考考他們誰nb,題目是這樣的給你n個數 在這n個數之間新增n 1個 或 使結果最大,但不可以打亂原順序,請得出這個結果 如 1 3 5 結果是 1 3 5 20 最大 可以...