【全程NOIP计划】初赛
【全程NOIP计划】初赛
计算机基础
IT发展历史
第一台计算机:埃尼阿克 ,1946
应用:计算,数据储存处理,通信,辅助工作等
第一个程序员:Ada(女),为了纪念她,命名了一个编程语言是她的名字
计算机:图灵奖
数学:菲尔兹奖
物理化学生物经济文学和平:诺贝尔奖
ACM(美国计算机协会),IEEE(美国工程院学会),臭名远扬CCF
【NOIP2018】下列关于图灵奖的说法中,正确的有( )。
A. 图灵奖是由电气和电子工程师协会(IEEE)设立的。
B. 目前获得该奖项的华人学者只有姚期智教授一人。
C. 其名称取自计算机科学的先驱、英国科学家艾伦·麦席森·图灵。
D. 它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。
【解析】答案选择BCD,图灵奖是又ACM设立的,其它的没得一点问题
计算机组成
冯诺依曼结构(储存程序原理)——计算机的基础模型
字长:32位和64位;意思指的是每次指令可以处理32位的数据或者64位的数据
主频:2.4GHz,指的是计算机处理的速度
内存:8GB,临时存放东西,也叫RAM,随机存储设备,断电丢失
位Bit:一个0,或者一个1,
字节Byte:8个0或1
1KB=1024B,1MB=1024KB,1GB=1024MB,1TB=1024GB;
摩尔定律:18个月翻倍(快要失效了,主要是要突破物理极限了)
软件系统
操作系统:Windows,DOS,UNIX,Linux,MacOS,Android,iOS,鸿蒙
应用软件:浏览器,办公软件,游戏,机器语言,汇编语言,高级语言
编码
文字、图片、声音->01串
ASCLL编码,GBK编码(2字节),utf-8(3字节)
图片:黑白(01),24位彩色(RGB)
文件系统拓展名:
图片:jpg,gif,png,tiff,jpeg
文档:txt,docx,pdf
声音:mp3/视频:avi,rm,mp4
可执行文件:exe(Windows),无(Linux)
NOI系列
NOI:1984,中国计算机学会(CCF)
NOIP:1995-2019,2020-?
可以带:文具(不能带草稿纸),衣服,水,证件
2022年之后只能使用C++(明年就不能用了)
程序设计
编译:代码->可执行文件(机器码) C/C++,Pascal
解释:一样一行运行Python,JavaScript,PHP,BASIC
时间复杂度:数据规模增长和运行时间增长的趋势
www.zhihu.com/answer/830343420
基础算法串讲
排序
计数排序
时间复杂度\(O(a+n)\)
是一种基于统计而不是基于比较的排序
选择排序
时间复杂度\(O(n^2)\)
不稳定
冒泡排序
时间复杂度\(O(n^2)\)
稳定
插入排序
时间复杂度\(O(n^2)\)
稳定
归并排序
时间复杂度 \(O(nlogn)\)
稳定,需要额外辅助空间
快速排序
时间复杂度平均 \(O(nlogn)\)
最坏为 \(O(n^2)\)
不稳定
堆排序
时间复杂度\(O(nlogn)\)
不稳定
贪心
需要证明,有时候不正确
比较奇技淫巧
二分
顺序查找效率低,要找N次
二分查找,需要找logn次,但是要求有序
递推递归分治
递推:从小到大递推
斐波那契数列 1 1 2 3 5 8 13 21
递推要有初始值和递推条件
分治:大问题拆成小问题,递归解决
例如归并排序和快速排序
栈
应用:
卡特兰数:1 2 5 14 52;
后缀表达式计算
括号匹配
队列
先进先出
链表
有的时候比数组方便
树
有n个节点,n-1条边,可能有一个根节点,所有节点之间都联通,没有环
森林是树的集合
二叉树
高度,节点数量,叶子节点数量,下一层数量是上一层两倍
每层的数量,一共的数量
完全二叉树,满二叉树
完全二叉树:有n层,前n-1层都是满的,最后一层的全部靠左
遍历
前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
表达式树
中序表达式就是最普通的表达式
后缀表达式这个表达式的后序遍历
前序表达式这个表达式的前序遍历
可以对一个表达式树遍历,然后反表达来求什么奇怪的波兰啊,逆波兰表达式之类的
图
无向图,无向图(带权),有向图(带权)
顶点V;边E,完全图的边数量:假设n为顶点数量 \(\dfrac {n \times (n-1)} 2\)
度数:顶点连着边的条数,有向图分入度和出度
重边:两个相同定点中间有很多边
自环:自己连着自己
简单图:没有重边和自环
存储方式:
邻接矩阵,邻接表
图论算法
单元最短路径:Dijkstra nlogn SPFA死了
Floyd \(n^3\)
PS:循环的顺序比较重要,实际上不记得的话,任何一种方式的循环只要循环三次就一定能得到正确结果
最小生成树: Prim $ n^2$ ,kruskal \(elog e\)
Prim是针对点的,可以用堆优化,类似于Dijkstra,所以也是贪心
Kruskal 是针对边的贪心,用并查集,一般来说用这个比较方便
欧拉回路:一笔画问题,只能最多两个奇数度的定点
进制转换与位运算
进制转换
n进制转10进制比较简单
10进制转n进制,短除法
注意一下十进制可以这么写 比如:10写成 10 B
同样地,十六进制也有这么写的 10 H ,这个就表示\((10)_{16}\)
计算机编码
原码:数字的二进制表示
反码:除了符号位各位取反
补码:正数不变,负数反码加一
主定理
秋令营中讲过
话说难的主要是组合数学和读程序吧,awa,听天由命吧awa