NOIP(CSP)初赛知识总结

快要CSP2019初赛了,再次总结一些初赛知识及技巧,供自己与大家复习。

一、计算机理论类:

1、单位:位(bit),字节(Byte),以及许多字节的缩写:KB、MB、GB、TB、PB,更大的应该不会考了。换算关系为:

1 Byte = 8 bit
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 PB = 1024 TB

注:10TB大约为正常人脑储存量。

2、编程语言:大致有两个分法。

面向对象:C++、Java、EIFFEL、Python等

面向过程:C、Fortran等

注:Pascal似乎既可以面向对象也可以面向过程。

编译性语言:C、C++、Pascal、Delphi等

解释性语言:Java、VB、Python、Ruby、Matlab等

注:编译型语言指直接将源代码翻译成机器语言的语言,解释语言则是一行一行翻译。

3、计算机系统组成:

一个图可以展现所有的细节了,图片来自互联网:

NOIP(CSP)初赛知识总结_第1张图片

需要记忆的知识点:硬件组成:运算器、控制器、存储器、输入输出设备。

CPU包括运算器、控制器、存储器。

存储器包括内、外存储器。

断电后能保存数据:ROM(只读存储器)、硬盘

断电后不能保存数据:RAM(随机存储器)、CPU、显卡

4、计算机发展历史:电子管计算机、晶体管计算机、中小规模集成电路计算机、大规模集成电路计算机。

注:世界上第一台计算机ENIAC是由美籍匈牙利科学家冯诺伊曼设计,其被称为计算机之父,另一个计算机大神是英国科学家阿兰图灵,被称为人工智能之父。图灵奖是计算机领域最高奖项,中国只有一位科学家即姚期智先生得此殊荣。

5、CCF赞歌:关注CCF官网即可。如考试要求等。

6、(2019.10.18更新)计算机网络:TCP/IP是网络的一组通信协议。

网络主要功能:资源共享、信息传递、分布处理、综合信息服务。

网络分类:局域网(LAN)、城域网(MAN)、广域网(WAN)。广域网有多种拓扑结构(星形、总线型等),一般关于网都是网状型(不规则)。

体系结构:分为4层:应用层、传输层、国际互联层、网络接口层(一说5层,多一个物理层,大家自行度娘)。

IP地址:形式:a.b.c.d,其中a、b、c、d是0~255中的整数。注意:10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255全部为私有,其他味公用地址。

7、(2019.10.18更新)Internet知识:服务:WWW(万维网)、E-mail(电子邮件)、FTP(文本传输协议)、Telnet(远程登录)

注:WWW网页用超文本标记语言(即HTML)在超文本传输协议(即HTTP)下支持运行的。电子邮件中:传输协议(SMTP)、扩展协议(MIME)、收邮件(POP3)协议、邮件访问协议(IMAP)。

二、算法类

1、进制:会比较各种进制下个数的大小,会即可。如十进制下的a转化为n进制,每次使m=a%n,a/=n,一直到零,最后将每个m从后往前连起来便是n进制下的a。

2、二进制:符号数有三种表示方法:原码、反码与补码。原码指原二进制码,反码指正数下的原码与负数下将原码除符号位以外每一位的01取反。特别注意的是,计算机中的最后一位表示的是数字的符号,1表示负数,0表示正数。

补码就比较复杂了,正数及0为其原码,负数则‘取反加1’,即将其置为反码后加1即可。

另外,反码与补码是专门用来处理二进制下正负数加减问题,反码会产生0与-0的问题,故舍去了。

一篇博文:https://www.cnblogs.com/author/p/8954127.html详细解释了反码与补码,建议参考。

3、时间复杂度计算:一般都是递推形式,自己算一算就行,实在不行就暴力打表找规律。

4、树:性质:是连通图且若有n个定点则有n-1条边。似乎挺好证明:选定一个根节点,此时0条边,此后每多一个点就连一条边,肯定是n-1条边。

无环(废话)

两个节点间有且只有一条简单路径。

在完全二叉树中第n个顶点的左儿子为2*n,右儿子为2*n+1,完全n叉树以此类推,当然只适用于有序树。

初赛中树的题似乎暴力打表都能解决,不能解决的都能算出来。

另外树的遍历中,DFS是沿着儿子搜索,BFS是同辈间每层逐个搜索。先序遍历即指DFS序,中序遍历先访问左儿子再访问根节点再访问右儿子,后序则是先访问左儿子再访问右儿子再访问根节点,注意以上遍历顺序是在每一个子树中进行在递归上更大的子树。详细参考资料。推荐:https://blog.csdn.net/cocoiehl/article/details/80959143,有图详细易懂。

树的种类:大约分为有序树(节点编号与顺序有关)、无序树(节点编号与顺序无关,又称自由树)、完全树(仅适用于n叉树,表示每层从左到右一个一个排下去)、满n叉树(仅适用于n叉树,即每层都排满的树,若有m层(m>1),则一定共有1+n+n^2+n^3+...+n^(m-1),特殊的,满二叉树中共有2^m-1个顶点)、哈夫曼树(带权路径最短的二叉树,又称最优二叉树)等。

5、图论:概念:

有向图:每条路径都是单向的的图。

无向图:每条路径都是双向的图。

度数:无向图中每个顶点所连边的边数。

出度:有向图中每个顶点出边边数。

入读:有向图中每个顶点入边边数。

强连通:若有向图中有两点能互相到达则称这两点强连通。

强连通图:任意两点强连通的有向图称为强连通图。

强连通分量:任意有向图的极大强连通子图成为强连通分量。

算法:

初赛中应该也就考最短路径和最小生成树了吧。

最短路径有Floyd、Dijkstra、SPFA等,可参考博文:https://blog.csdn.net/Njhemu/article/details/81351849、https://blog.csdn.net/Njhemu/article/details/79779361、https://blog.csdn.net/qq_41758381/article/details/86570358

最小生成树有Prim、Kruskal等,可参考博文:https://blog.csdn.net/Njhemu/article/details/80159212、https://blog.csdn.net/Njhemu/article/details/82930572

6、基本算法:

二分、分治、高精、动态规划、差分、搜索、背包、图上各种算法、KMP、快速幂及一些基本数论、概率等,当然还有模拟与打表。

三、数学题部分

初赛中会有十分的数学题,一定要对。要掌握的知识有:排列组合、基本代数、基本数论、位运算、逻辑推理、暴力打表等(似乎不会考几何)。

附一些常用公式定理供大家复习:

1、P(n,k)=n!/(n-k)!,C(n,k)=n!/[k!*(n-k)!],P为排列,C为组合。

2、容斥原理https://blog.csdn.net/m0_37286282/article/details/78869512

3、Nim游戏:记一下结论吧:有n个石头,每次最少取一个,最多取m个,取完最后一个石头人获胜,则n%(m+1)=0是先手必败,否则必胜,策略是每次取走当前石头数%(m+1)的石头(假Nim游戏)。真Nim函数:若干堆石子,每次从某对中随机取随机取石子,最后取完的人获胜(每堆石子个数为a1,a2...an),则a1 xor a2 xor ... xor an>0则必胜,否则必败。具体参看博客https://www.cnblogs.com/yifusuyi/p/9572773.html

建议把每年的两道数学题做一遍,洛谷有题中会有2007至今的所有初赛卷附答案。附上地址:洛谷有题

四、看程序写结果

1、暴力模拟:第一、二题甚至第三题都可以这样死做出来,注意不要算错,建议考试时画格子记录好每个变量的取值。

2、找规律:这也很重要,如果数据很大只能找规律时可使用类似于数学归纳法的方法,在自造几个较小数据得出答案在爆找规律。

3、读懂程序:大佬才能做到,且初赛中时间有限,但若一眼看出来这题也就秒掉了,另外,关注变量名、函数名对理解程序有好处。

注:这道题一题8分份量极大,一定要做。

五、补全程序

这就主要看实力了,但有几条技巧:

1、注意所给程序的变量名与函数名,如dp,ans等,会很有好处。

2、对照上下程序,如分治、DFS前后会有类似的语句出现。

3、思考自己会使用什么方法通过此题,不要想卡常、骗分,直接想正解。

 

大约就这些了,如有补充可在评论区指出,谢谢各位了。

最后祝大家考试顺利。

 

 

 

 

你可能感兴趣的:(NOIP题解)