蓝桥杯 BASIC 28 Huffuman树(vector)

【思路】:利用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。

只想到处流浪人生就像一场旅行,不必在乎目的地,

蓝桥杯 BASIC 28 Huffuman树(vector)

相关文章:

你感兴趣的文章:

标签云: