NOIP2007-2017重要知识点汇总
每年挑几道题,没空做卷子就看这个了。多半是背诵内容,还有一部份干货。
干货部分
运算符优先级
优先级有15种。记忆方法如下:
记住一个最高的:构造类型的元素或成员以及小括号。
记住一个最低的:逗号运算符。
剩余的是一、二、三、赋值。
意思是单目、双目、三目和赋值运算符。
在诸多运算符中,又分为:
算术、关系、逻辑。
两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。再细分如下:
算术运算符分 *,/,%高于+,-。
关系运算符中,〉,〉=,<,<=高于==,!=。
逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。
逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。
这样就将15种优先级都记住了,再将记忆方法总结如下:
去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。
进制转换
- R进制数与十进制数转换,算位权。
- 十进制整数转R进制整数,短除取余倒序。
- 十进制小数转R进制小数,乘R取整顺序,直到小数部分为0。
常用排序算法相关(来自大佬的图片)
2007年
- 在关系数据库中,存放在数据库中的数据的逻辑结构以 二维表 为主。
- IT的含义是信息技术(Information Technology)
- LAN的含义是局域网 WAN是广域网
- NOIP竞赛(复赛)推荐使用的语言环境有GCC,G++ , Free Pascal , Lazarus
- 前中后序遍历互相求:
前中 ⟶ \longrightarrow ⟶后:根据前序确定根,然后在左子树递归,右子树递归,回溯打印根(同样的方法也可以手画树)
中后 ⟶ \longrightarrow ⟶前:后序最后一个点是根;中序中,根据求出来的根分左右子树;左右子树在后序中最后一个就是子树的根;递归;完成。
前后 ⟶ \longrightarrow ⟶中:你求一个给我看看?图灵奖在向你招手。 - 插板法求分组(组合)题:百度
2008年
- 字符串子串数目:倒计时相加(小学老师如是说)。“olympic”,最长的子串只有一个,最短的有7个,所以总共有 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28 7+6+5+4+3+2+1=28 7+6+5+4+3+2+1=28个子串
- TCP/IP相关,一张图就够了
2009年
-
原码:数字原来的样子。
反码:1变0,0变1。
补码:最左边的是符号位,可以表示负数。
负数表示方法:符号位不变,之后的从右往左,遇到第一个1之前所有数取反。
举个栗子:十进制下10
二进制下为00001010
十进制下-10
二进制下为11111011 -
前中后缀表达式
中缀表达式就是你数学卷子上写的那种四则运算
前缀表达式(波兰式),从右往左,数字入栈,之后遇到运算符,两个数字出栈进行计算,运算结果重新入栈。
举个栗子:- + * 3 4 5 6 ⇔ \Leftrightarrow ⇔ 3 ∗ 4 + 5 − 6 3*4+5-6 3∗4+5−6后缀表达式(逆波兰式),从左向右,数字入栈之后碰到运算符,两个数字出栈进行计算。也就是把前缀表达式的顺序反过来。
-
huffman编码(最优前缀编码)用的是贪心思想,基于huffman树。
Huffman树就是带权路径长度最小的二叉树。
huffman树的构建:
举个栗子,一篇文章里“A”“B”“C”“D”“E”“F”分别出现了60,30,20,10,30,50次。
先按照权值对每个节点进行排序:A-F-B-E-C-D
选择权值最小的两个节点生成新的节点,节点权重为这两个节点权重之和。
一直重复,直到只剩根节点。
Huffman编码:在Huffman树上跑,从根开始,左子树为0,右子树为1,最后拼起来就是Huffman编码。
2010年
-
linux可执行文件没有后缀名,甚至一般来说没有后缀名的概念。
-
好拓扑排序
拓扑排序要求图是有向无环图(DAG)
步骤:1、选择入度为0的点
2、删除改点以及从其出发的边
3、重复1,2直到图空或者不存在无前驱的点(图中存在环)
可以看做是小时候玩的一笔画来用。 -
P&NP:P问题是多项式时间内能解决的问题,NP反之。
问题之间的关系,在初赛,上面这张图够用了。
2011年
- 为解决web应用中的不兼容问题,保障信息的顺利流通,万维网联盟(W3C)制定了一系列标准,涉及HTML、XML、CSS等,并建议开发者遵循。
- 逆序对:在数组a[n]中,如果存在 i<j,a[i]>a[j],则称a[i],a[j]为一对逆序对。可以用归并排序求。
- 计算机中的数值信息分为整数和实数(浮点数)。实数之所以能够表示很大或者很小的数,是由于使用了阶码。
- 阶码:在机器中表示一个浮点数时需要给出指数,这个指数用整数形式表示,这个整数叫做阶码,阶码指明了小数点在数据中的位置。
- 边无相交的平面图,有n个顶点则至少有 顶 点 数 + 面 数 2 \frac{顶点数+面数}{2} 2顶点数+面数条边。有相交就不要除以2。
2012年
- 目前计算机芯片(集成电路)制造的主要原料是硅,它是一种可以在沙子中提炼出的物质。
- 1946 年诞生于美国宾夕法尼亚大学的 ENIAC 属于电子管计算机。
- 目前3G(第三代移动通信技术)存在3种标准:CDMA2000、WCDMA、TD-SCDMA。
- 目前2G存在5种标准:GSM、IDEN、IS-136、IS-95、PDC。
- 目前4G存在5种标准:LTE、LTE-Advanced、WiMax、Wireless MAN。
2013年
- 一个 32 位整型变量占用4个字节。
- 1948 年,克劳德·香农(Claude Shannon)将热力学中的熵引入信息通信领域,标志着信息论研究的开端。
- IPv4 协议使用 32 位地址,随着其不断被分配,地址资源日趋枯竭。因此,它正逐渐被 使用128位地址的 IPv6 协议所取代。
- 具有n个顶点的二分图有 n 2 4 \frac {n^2}{4} 4n2条边,具有n个顶点的图最多有 n ( n − 1 ) n(n-1) n(n−1)条边。
- Unicode是一种通用的字符编码,它为世界上绝大部分语言设定了统一并且唯一的二进制编码,以满足跨语言、跨平台的文本交换。目前它已经收录了超过十万个不同字符。
2014年
- 1TB代表的字节数量是2的40次方。
- 在无向图中,所有定点的度数之和是边数的2倍。
- 设G是有n个结点,m条边的连通图,要确定G的一棵生成树,必须删去G的 m − ( n − 1 ) m-(n-1) m−(n−1)条边。
2015年
- 具有 n 个顶点,e 条边的图采用邻接表存储结构,进行深度优先遍历和广度优先遍历运 算的时间复杂度均为O(n+e)。
2016年太水了没什么好讲的
2017年
- 从2020年开始,NOIP 竞赛将不再支持 Pascal 语言。【滑稽】
- 中华人民共和国建立于1949年10月1日星期六。