网页设计电商网站,网站建设员,js 网站首页下拉广告,古城区建设局网站【问题描述】在数据压缩问题中#xff0c;需要将数据文件转换成由二进制字符0、1组成的二进制串#xff0c;称之为编码#xff0c;已知待压缩的数据中包含若干字母#xff08;A-Z#xff09;#xff0c;为获得更好的空间效率#xff0c;请设计有效的用于数据压缩的二进制…【问题描述】在数据压缩问题中需要将数据文件转换成由二进制字符0、1组成的二进制串称之为编码已知待压缩的数据中包含若干字母A-Z为获得更好的空间效率请设计有效的用于数据压缩的二进制编码使数据文件压缩后编码总长度最小并输出这个最小长度值。
【输入形式】待压缩的数据长度不大于100的大写字母
【输出形式】编码的最小总长度值
【样例输入】ABACCDA
【样例输出】13
【样例说明】A编码0B编码110C编码10D编码111ABACCDA的编码为0110010101110
【评分标准】
#includeiostream
#includestack
#includealgorithm
#includequeue
using namespace std;
int main()
{string str;cinstr;int cnt[26]{0};int wpl0;for(int i0;str[i];i){cnt[str[i]-A];}priority_queueint ,vectorint,greaterint heap;for(int i0;i26;i){if(cnt[i])heap.push(cnt[i]);}while(heap.size()1){int t1heap.top();heap.pop();int t2heap.top();heap.pop();heap.push(t1t2);wplwplt1t2;}coutwplendl;return 0;
}