【思路】:利用vector的动态特性和相关操作很容易实现。可以算第一次真正用STL做题,,算开始了我的STL之旅吧。
【AC代码】:
#include <iostream>#include <algorithm>#include <cstdio>#include <vector>using namespace std;#define MAX 100+10bool Comp(const int &a,const int &b){ return a < b ;}int main(){//freopen("in.txt", "r", stdin);//freopen("out.txt", "w", stdout);vector <int> Huff;vector <int>::iterator Iter;int i = 0, x = 0, n = 0, tolconsu = 0;//inputcin >> n;for (i = 0; i < n; i++){cin >> x;Huff.push_back(x);}while (Huff.size() >= 2){sort(Huff.begin(), Huff.end(), Comp);int sum = Huff[0]+Huff[1];//cout << Huff.front() << endl;Iter = Huff.begin();Huff.erase(Iter);//cout << Huff.front() << endl;Iter = Huff.begin();Huff.erase(Iter);Huff.push_back(sum);tolconsu += sum;}cout << tolconsu;}注意:1. Comp函数的写法,小于是升序,大于是降序。
2. push_back() 用来动态添加。
3.erase() 的参数是iterator。
只想到处流浪人生就像一场旅行,不必在乎目的地,