初赛部分重要易错内容

零、关于NOIP/CSP

2022年起,NOI系列赛事此NOIP2022开始将仅支持C++语言(也即不再支持Pascal语言、C语言)

一、二叉树的分类:

完全二叉树:二叉树的高度为h,出第h层外,其他各层(1~h-1)的节点数都到达最大个数,第h层有叶子节点,并且叶子节点都是从左到右一次排布。

满二叉树:除了叶结点外每一个节点都有左右叶子结点且子节点都在最低层的二叉树。

平衡二叉树: 别称AVL二叉树。是一棵空树,或树的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

最小生成树:一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。

简单来说,就是保留了一个图的所有结点,且连接每个节点的边权之和最小。

哈夫曼树:给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

树的带权路径长度(‌WPL)是树中所有‌叶结点的带权路径长度之和‌。每个叶结点的带权路径长度是其权值与从根结点到该叶结点的路径长度的乘积。

二、哈夫曼编码(Huffman Coding )

又称霍夫曼编码,是一种编码方式,具体方式即完全依据字符出现概率来构造异字头的平均长度最短的码字。

哈夫曼编码中包含有贪心的思想

三、电脑操作系统

windows系列:凡是带有windows的

UNIX:

Linux:

Mac os:

四、文件格式

  • 视频

微软视频:wmv,asf,asx

Real player:rm、rmvb

MPEG视频:mpg、mpeg、mpe

手机视频:3gp

Apple视频:mov

Sony视频:mp4、m4v

其他:avi、dat、mkv、flv、vob

  • 图片

png、jpeg(jpg)

五、正确的IP地址

IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。

六.Catalan数(卡特兰数)

卡特兰数是组合数学中一个常出现于各种计数问题中的数列。

\(Cat_n\)表示所有在 n × n格点中不越过对角线的单调路径的个数。

通项公式:$Catalan _ {n} = \frac{1}{n + 1}C _ {2n} ^ {n} $

递推公式$Catalan _ {n}= \frac{4n + 2}{n + 2}Catalan _ {n - 1} $

七、计算机网络

计算机网络体系有两种分类:

ISO(国际标准化组织)制定的OSI模型将网络通信分为七层,即:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

TCP/IP协议(一组在不同网络实现信息交换的协议簇)
将网络通信分为四层:链路层、网络层、传输层、应用层

TCP/IP协议包含有 FTF、SMTF、TCP、UDP、IP等,其中TCP和IP最有代表性,此协议也是因特网(Internet) 的核心技术。

网络结构:

在信息界,最大的集合是网,网中有域,域中有网站,网站中有文件。

现在常说的“上网”,指的是上互联网,互联网是计算机网络中的一支,现在的互联网名称因特网,而在因特网中包含有的 万维网 WWW(World Wide Web) 是一个数量巨大的文档(页面)集合。

HTTP协议(超文本传输协议) 是一种以安全为目标的请求-响应 协议。

DNS域名系统用于管理域名。

网址https://www.noi.cn/xw/

URL(统一资源定位符) 是互联网上标准资源的地址,可以通过它找到指定的文件。

FTP(文件传输协议)

SSH(安全外壳协议)

scp是SSH进行远程文件拷贝的命令。

补充:大佬的博客

八、STL 比较

  • set

比较的是其内有序数据的字典序大小。例如

	set<int> a={1,2,3},b={1,1,2,3},c={3,4,5};

其中满足a==bc>a

  • map

map内存的是pair,以pair.first为第一关键字排序,再以pair.second为第二关键字排序,例如

set<int> a={1,2,3},b={1,1,2,3},c={3,4,5},d={1,100};
	map<set<int>,int> ma1,ma2;
	
	ma1[a]=1;ma2[b]=1;
	ma1[c]=4;ma2[d]=9;

运行后满足ma1>ma2,因为ma1的序列是<a,1><c,4>的,而ma2的序列是<b,1><d,9>

九、语言类型

  • 强\弱类型语言

‌弱类型编程语言包括VB、PHP、JavaScript、C、C++、Perl等。

‌这些语言在变量和表达式的类型转换方面具有较大的灵活性,允许自动或隐式的类型转换发生,有时甚至在没有明确转换的情况下也能进行操作。弱类型语言的特点是类型检查较为宽松,允许将一块内存看作多种类型,例如直接将整型变量与字符变量相加。这种类型的语言在初始化变量时,无须显式地指出变量的具体类型,整个变量的类型完全由代码解释器在代码的运行过程中进行推断。

强类型编程语言包括Java、C#、Python、Ruby。‌

强类型编程语言要求在编写程序时明确声明所有变量的数据类型,并且在程序运行过程中,变量的数据类型不能改变。这种类型的语言提供了类型安全,有助于避免因数据类型不匹配而引发的错误。

  • 面向对象编程语言

面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。

一般认为,较典型的面向对象语言有:
simula 67、Smalltalk、EIFFEL、C++、Java、C#

十、奇奇怪怪的编辑器

  • Vim 编辑器

bilibili介绍

  • Linux 系统终端

ls:列出当前目录下所含的文件和子目录
cd:切换目录
cp:复制

posted @ 2025-07-11 08:18  丹稳鸿  阅读(7)  评论(0)    收藏  举报