題目描述
sed同學最近迷上了製造機器狗,購置了大量所需零件,零件可以組裝為乙個元件,這些元件或零件又可以組裝為乙個大的元件。在製造機器狗中,元件或零件只能兩兩進行組裝,組裝的順序任意。在機器狗中,每個零件都有乙個組裝成本,每次組裝乙個元件的費用為各個零件組裝成本之和。給定各個零件組裝成本(單位為元),你的任務是幫助sed計算他至少花費多少費用。
輸入 第一行包括乙個整數n,表示機器狗零件數(1≤n≤10000)
第二行為n個正整數,表示每個機器狗零件組裝成本(單位為元),整數之間用空格隔開。 輸出
輸出僅一行,即機器狗組裝的最少費用。
注意:輸出部分的結尾要求包含乙個多餘的空行。
樣例輸入 10
1 2 3 4 5 6 7 8 9 0
樣例輸出
136
解題思路
題目抽象起來就是n個數字的兩兩合併 明顯可以用貪心來解 只需要知道當前的最小的兩個零件 把它們組合起來即可。o(n^2)搞定 詳見**
#include #include #define ll long long
#define inf 1000000010
using namespace std;
const int maxn = 10010;
int s[maxn];
int main()
else
}_min = inf;
for(int i = 0 ; i < n ; i ++)
}sum += s[pt1] + s[pt2];
s[pt1] = s[pt1] + s[pt2];
s[pt2] = inf;
}printf("%lld\n",sum);
}return 0;
}
1076 飯卡(動態規劃)
題目描述 如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一次。已知每種菜的 以及卡上的餘額,問最少可使卡上的餘額為多少。輸入 多組資料。對於每組資料 第...
AcWing 1076 迷宮問題
題目描述 給定乙個 n n 的二維陣列,如下所示 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。資料保證至少存在一條從左上角走到右下角的路徑。輸入格式 第一行包含整數 n。接下來 n 行,每...
AcWing 1076 迷宮問題
原題鏈結 考察 bfs 錯誤思路 定義結構體node,用node裡vector記錄路徑.此思路會tle,當n很大時,每次賦值都要消耗一定時間.正確思路 用陣列記錄路徑,即用pii 陣列記錄到達該點的上一步的座標.到時候再迭代即可.注意 當迭代的時候,不要重新定義pii it 最最注意 如果取單個座標...