演算法提高 最大乘積
時間限制:1.0s 記憶體限制:512.0mb
問題描述
對於n個數,從中取出m個數,如何取使得這m個數的乘積最大呢?
輸入格式
第一行乙個數表示資料組數
每組輸入資料共2行:
第1行給出總共的數字的個數n和要取的數的個數m,1<=n<=m<=15,
第2行依次給出這n個數,其中每個數字的範圍滿足:a[i]的絕對值小於等於4。
輸出格式
每組資料輸出1行,為最大的乘積。
樣例輸入
15 51 2 3 4 5
樣例輸出
120
解題思路
將輸入的資料存入陣列然後做公升序排列。然後開始從末端迴圈,每次迴圈都求出順序前兩個數字的積和逆序前兩個數字的積,然後進行比較。
如果順序前兩個的積大於逆序前兩個的積,則sum*順序第乙個數字,m--; 如果順序前兩個的積小於或者等於逆序前兩個的積(此時要滿足m大於等於2),則sum*逆序後兩個的積,m-=2。
c**
#include#includeusing namespace std;
int a[20];
int main()
else
}printf("%lld\n",sum);
} return 0;
}
演算法基礎 藍橋杯入門演算法
1.動態陣列 vectora push back pop.back size clear 可能存在空間 問題,用 vector swap v 來解決。2.集合 set v.insert erase cout 比較方式 bool operator const people rhs const 迭代器 ...
藍橋杯 演算法訓練 Lift and Throw
演算法訓練 lift and throw 時間限制 3.0s 記憶體限制 256.0mb 問題描述 給定一條標有整點 1,2,3,的射線.定義兩個點之間的距離為其下標之差的絕對值.laharl,etna,flonne一開始在這條射線上不同的三個點,他們希望其中某個人能夠到達下標最大的點.每個角色只能...
藍橋杯 演算法訓練 數列
題目 演算法訓練 數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個正整數k 3 k 15 把所有k的方冪及所有有限個互不相等的k的方冪之和構成乙個遞增的序列,例如,當k 3時,這個序列是 1,3,4,9,10,12,13,該序列實際上就是 3 0,31,3 0 31,3 2,...