个体营业执照可以做网站搞推广吗自己电脑做网站服务器系统
个体营业执照可以做网站搞推广吗,自己电脑做网站服务器系统,做网站设计需要什么软件,自己怎么制作网页合并果子 查看题解 查看答案
题目描述
Time Limit: 1000 ms Memory Limit: 256 mb
在一个果园里#xff0c;多多已经将所有的果子打了下来#xff0c;而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并#xff0c;多多可以把两堆果子合并到…合并果子查看题解 查看答案题目描述Time Limit: 1000 msMemory Limit: 256 mb在一个果园里多多已经将所有的果子打了下来而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并多多可以把两堆果子合并到一起消耗的体力等于两堆果子的重量之和。可以看出所有的果子经过n-1次合并之后就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1并且已知果子的种类数和每种果子的数目你的任务是设计出合并的次序方案使多多耗费的体力最少并输出这个最小的体力耗费值。 例如有3种果子数目依次为129。可以先将1、2堆合并新堆数目为3耗费体力为3。接着将新堆与原先的第三堆合并又得到新的堆数目为12耗费体力为12。所以多多总共耗费体力31215。可以证明15为最小的体力耗费值。输入输出格式输入描述:输入包括两行第一行是一个整数n(1n10000)表示果子的种类数。第二行包含n个整数用空格分隔第i个整数ai(1ai20000)是第i种果子的数目。输出描述:输出包括一行这一行只包含一个整数也就是最小的体力耗费值。输入数据保证这个值小于2^31。输入输出样例输入样例#:3 1 2 9输出样例#:15题目来源中南大学机试题#includebits/stdc.h using namespace std; int main(){ int n; cinn; priority_queueint, vectorint, greaterints; while(n --){ int temp; cintemp; s.push(temp); } int count 0; while(s.size() 1){ int temp1 s.top(); s.pop(); int temp2 s.top(); s.pop(); int temp temp1 temp2; count temp; s.push(temp); } coutcountendl; }哈夫曼编码查看题解 查看答案题目描述Time Limit: 1000 msMemory Limit: 256 mb熵编码器是一种数据编码方法它通过对删除了“浪费”或“多余”信息的消息进行编码来实现无损数据压缩。换句话说熵编码首先删除了对消息进行精确编码所不需要的信息。高度的熵意味着一条带有大量浪费信息的消息。以ASCII编码的英文文本是具有非常高的熵的消息类型的示例。已经压缩的消息例如JPEG图形或ZIP归档文件的熵很小因此无法从进一步的熵编码尝试中受益。用ASCII编码的英文文本具有很高的熵因为所有字符都使用相同的位数八位进行编码。众所周知的事实是与英语文本中大多数其他字母相比字母ELNRS和T的出现频率要高得多。如果可以找到一种仅用4位对这些字母进行编码的方法则新的编码将更小包含所有原始信息并且熵更少。 ASCII会使用固定位数这是有原因的这很容易因为一个人总是处理固定位数来表示每个可能的字形或字符。对于上述字母使用四位的编码方案如何区分四位代码和八位代码使用所谓的“无前缀可变长度”编码可以解决这个看似困难的问题。在这种编码中可以使用任意数量的位来表示任何字形并且消息中不存在的字形也不会被简单地编码。但是为了能够恢复信息不允许将编码字形的位模式作为任何其他编码位模式的前缀。这允许对编码的比特流进行逐位读取并且只要遇到代表字形的一组位就可以对该字形进行解码。如果没有实施无前缀约束那么这样的解码将是不可能的。考虑文字“ AAAAABCD”。使用ASCII对此进行编码将需要64位。相反如果我们用位模式“ 00”编码“ A”用“ 01”编码“ B”用“ 10”编码“ C”用“ 11”编码“ D”那么我们只能用16位编码该文本。位;结果位模式将为“ 0000000000011011”。但是这仍然是固定长度的编码。每个字形使用的是两位而不是八位。由于字形“ A”以更高的频率出现我们可以通过用更少的比特对其进行编码来做得更好吗实际上我们可以但是为了保持无前缀编码其他一些位模式将变得比两位长。最佳编码是用“ 0”编码“ A”用“ 10”编码“ B”用“ 110”编码“ C”用“ 111”编码“ D”。 这显然不是唯一的最佳编码因为很明显对于BC和D的编码可以在不增加最终编码消息大小的情况下自由地互换用于任何给定的编码。使用这种编码消息可以在“ 0000010110111”只有13位压缩比为4.91也就是说最终编码消息中的每个位代表的信息与原始编码中4.9位的信息一样多。从左到右通读此位模式您会发现即使代码的位长不同无前缀编码也可以很容易地将其解码为原始文本。作为第二个示例请考虑文字“帽子里的猫”。在本文中字母“ T”和空格字符均以最高频率出现因此在最佳编码中它们显然具有最短的编码位模式。字母“ C”“ I”和“ N”仅出现一次因此它们的编码最长。有许多可能的无前缀可变长度位模式集它们可以产生最佳编码也就是说允许文本以最少的位数进行编码。一种这样的最佳编码是使用“ 00”“ A”和“ 100”“ C”和“ 1110”“ E”和“ 1111”“ H”和“ 110”“ I”和“ 1010”“ N”和“ 1011”以及“ T”和“ 01”。因此最佳编码仅需要51位而使用144位消息以8位ASCII编码压缩率为2.8到1进行编码时则需要144位。输入输出格式输入描述:输入文件将包含文本字符串列表每行一个。 文本字符串将仅包含大写字母数字字符和下划线用于代替空格。 输入结束将通过仅包含单词“ END”作为文本字符串的行来表示。 此行不应被处理。输出描述:对于输入中的每个文本字符串输出8位ASCII编码的位长度最佳无前缀可变长度编码的位长度以及精确到小数点后的压缩率。输入输出样例输入样例#:AAAAABCD THE_CAT_IN_THE_HAT END输出样例#:64 13 4.9 144 51 2.8#includebits/stdc.h using namespace std; int main(){ int n; string str; while(cinstr){ if(str END){ break; } double num str.size(); vectorintresult(256); for(int i 0; i num; i ){ result[str[i]] ; } priority_queueint, vectorint, greaterints; for(int i 0; i 256; i ){ if(result[i] 0){ s.push(result[i]); } } double count 0; while(s.size() 1){ int temp1 s.top(); s.pop(); int temp2 s.top(); s.pop(); int temp temp1 temp2; s.push(temp); count temp; } if(count 0) count s.top(); double temp num * 8 / count; printf(%.0f %.0f %.1f, num * 8, count, temp); coutendl; } }