noip上海地区初赛有推荐的教程吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了noip上海地区初赛有推荐的教程吗?相关的知识,希望对你有一定的参考价值。
rt
注意是初赛(貌似初赛考题海战术吗?)
初赛的话,我这里有几套模拟题。主要是把
这些内容弄懂了,还有多读读程序就行了。
你留邮箱,我发过去。
追问我只是想要书,不方便上电脑。。。。。
参考技术A 有一本紫色的大约语文课本大小,名字我忘了==基础知识还是比较重要的啦,我今年选择题都是蒙的,勉勉强强一等奖,靠推荐名额才去复赛的
注意时事也要看看的 参考技术B 理论上只要拿程序员的书看就可以
NOIP初赛 之 哈夫曼树
哈夫曼树
种根据我已刷的初赛题中基本每套的倒数第五或第六个不定项选择题就有一个关于哈夫曼树及其各种应用的题,占:0—1.5分;然而我针对这个类型的题也多次不会做,so,今晚好好研究下哈夫曼树;
概念:
给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。
————维基百科
自己结合维基百科和dalao的博客大致理解了下概念:就是一颗最优的二叉树,从根节点到需要到达的节点的权值之和最小,即为最优,举个例子:
一个很简单的程序,根据输入的分数判断等级,一共有五个等级,其主要的判断算法是这样的:
if(score<60) cout<<"E"<<endl; else if(score<70) cout<<"D"<<endl else if(score<80) cout<<"C"<<endl; else if(score<90) cout<<"B"<<endl; else cout<<"A!"<<endl;
用一个二叉树来表示是这样的:
【原谅我;灵魂画师】
可以很明显得看出,这种方式的效力是非常低下的,N的最差情况要比较四次,如果等级划分更严密的话【比如划分100000000000个等级】,这种方式明显TLE;
因此,我们可以采用哈夫曼树的思想:
哈夫曼树的几个概念:【来自于百度百科】
度为L-1。
注:哈夫曼算法采用的是贪心的思想; 问题求解题也有可能会让你求PL或WPL,如下图例:
例如例1,构造哈夫曼树的WPL为35是最小的。具体比较如下图:
以上是关于noip上海地区初赛有推荐的教程吗?的主要内容,如果未能解决你的问题,请参考以下文章