目录
来自蒟蒻作者的话
以下是一些我总结的一些考试内容(大多数都是我不会或者是我容易忘记的内容)
不包含全部考点,因此读者也要多查阅其他dalao的blog或者是看书等来备考
友链
d
z
j
dzj
dzj(初二)大佬的提纲
c
w
h
d
a
l
a
o
cwh\ dalao
cwh dalao的提纲
t
j
h
tjh
tjh神🐮的提纲
(若无法打开,大概率在审核)
1.数制转换
十进制转r进制
例如(10)
10
_{10}
10转成二进制
把余数从后往前写下便是二进制数了
因此
(
10
)
10
(10)_{10}
(10)10 =
(
1010
)
2
(1010)_2
(1010)2
但是出题人一般比较刁 钻 (恶心)
会出现小数的转换
小数转换其实也很简单,这里还是拿二进制为例
(
0.25
)
10
(0.25)_{10}
(0.25)10 转二进制
就是不断拿0.25去乘2(若是八进制就乘8),每次取整数部分,若为1,则取1,然后整数部分归0,直到没有小数为止,顺着写
所以
(
0.25
)
10
(0.25)_{10}
(0.25)10 =
(
0.01
)
2
(0.01)_2
(0.01)2
r进制转十进制
从后往前逐位乘
2
i
2^i
2i小数点前最后一位视为第0位,越往左约高位,小数点后第一个视为-1位,越往右位数越小
乘了之后相加即可
2.原码补码反码
原码
第一位为符号位,正数为0,负数为1
然后接它的二进制数
反码
正数的反码就是它的原码
负数的反码就是它的原码除符号位外取反
例如11001是原码,那么反码就是10110
补码
正数的补码和它原码一样
负数的补码 = 它的反码 + 1
3.计算机网络
分类
1.局域网(Local Area Network)(LAN)
2.城域网(Metropolitan Area Network)(MAN)
3.广域网(Wide Area Network)(WAN)
操作系统
Windows(使用最广,非开源)
UNIX (多用户,多任务的分时操作系统)
LINUX(自由和开放源码的类UNIX操作系统,较适用于小型网络)
MAC OS(运行于苹果电脑上的操作系统。Mac系统是基于Unix内核的图形化操作系统。由苹果公司自行开发。)
各种协议
ISO/OSI协议模型:各功能层之间,上一层对下一层提出服务要求,下一层完成上一层提出的要求。OSI参考模型将网络结构划分成七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。这只是一种理想的概念模型。
TCP/IP协议模型:传输控制协议/互联网络协议,诞生于1974年12月。分为应用层(OSI的应用层、表示层、会话层)、传输层、网际层(OSI的网络层)、网络接口层(OSI的数据链路层、物理层),包含了TCP、IP、UDP(用户数据报协议)、ARP(地址解析协议)等。
其他常见协议:
WWW(World Wide Web):万维网
URL(Uinform Resource Locator):统一资源定位器
HTTP(Hypertext Transfer Protocol):超文本传输协议
FTP (File Transfer Protocol):文本传输协议
SMTP(Simple Mail Transfer Protocol )简单邮件传输协议
IP地址:Internet中的每一台主机分配一个在全球范围唯一地址。IPv4地址是由32位二进数码表示。为方便记记忆,把这32位二进制数每8个一段用“.” 隔开,再把每一段的二进制数化成十进制数,也就得到我们现在所看到的IP地址形式,用“.”隔开的四个十进制整数,每个数字取值为0—255。
IP地址分A、B、C、D、E五类,目前大量使用的是A、B、C三类,最高位1……126为A类,128……191是B类,192……223是C类。D类为Internet体系结构委员会IAB专用,E类保留在今后使用。IPv4地址不够分,将被IPv6协议取代,由128位二进制码表示。
域名:是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。
通用顶级域:
.biz .com .edu .gov .info .int .mil .name .net .org .pro .xyz
.aero .cat .coop .jobs .museum .travel .mobi .asia .tel .xxx
4.逻辑运算
与:and : ∧ 同1出1,有0出0
或:or : ∨ 有1出1
异或:xor: ⊕ 相同出1,不同出0
非:not : ¬ 0变1,1变0
非 > 与 > 或和异或
5.竞赛类
历史
第一届 NOI :1984年,邓某平:“计算机的普及要从娃娃做起。”
第一届 NOIP :1995年
竞赛环境
NOIP啥时候不能用Pascal了
2019 和 2022 以及 2020 之后。
(2019 是因为这一年没有NOIP)
面向对象程序设计语言
S
m
a
l
l
t
a
l
k
Smalltalk
Smalltalk,
E
i
f
f
e
l
Eiffel
Eiffel,
C
+
+
C++
C++,
J
a
v
a
Java
Java,
P
H
P
PHP
PHP,
C
C
C#
C
C
C是面向过程程序设计语言
面向过程程序才是“自顶向下,逐步求精”,而面向对象程序设计并不是,而是基于问题对象的自底向上的设计方法。
(就是对象是下到上,过程是上到下 )
竞赛推荐语言
Visual C++不是竞赛推荐语言
不是的还有 TP7 和 TC 。
Lazarus 是(pascal类),RHIDE 也是(C++类)。
奇奇怪怪的内容【误
最好情况:指运气爆棚,刚好就一路顺畅,运行时间最少的情况
最坏情况:就是非酋,什么东西都运算的到天了(所有循环啥的都做满)
CSP-J/S和NOIP没有关系 (但是都由CCF举办)
6.IPv6与IPv4
IP头部
IPv4:长度为 32 位(4 个字节)
IPv6:长度为 128 位(16 个字节)
文件传输协议
IPv4与IPv6都支持
IPv6标准也可以和使用IPv4标准的主机相互通信(做题的时候看到的这东西)
7.信息编码表示
比特(bit)
指一位二进制数码,bit是计算机中表示信息的最小单位
字节(Byte)
一个字节由八位二进制数表示(1B = 8bit)
字节是存储器系统中的最小存取单位
8.玄学的东西
void dfs(int &p, int *b, int q)
类似上面的
&p是引用传递(指指针指向的地址?)
*b是指针传递(指指针指向的地址的内容)
q是值传递
这个dalao讲的比较详细,详见
b
l
o
g
链接
blog链接
blog链接
存储结构
数组:具有相同类型的若干变量按有序的形式组织起来,数组可分为数值数组、字符数组、指针数组、结构数组等。
bool 数组占字节数:1
char/unsigned (short) 数组占字节数:2
int/unsigned long/float 数组占字节数:4
(unsigned) long long/double 数组占字节数:8
链表:物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。相比于线性表顺序结构,链表比较方便插入和删除。(不可随机访问任一个元素)
单链表:每个节点只有一个存储直接后继结点地址的链域。
双向链表:既有存储直接后继结点地址的链域,称为右链域。又有存储直接前驱节点地址的链域,称为左链域。
数据结构
散列表:又称哈希表,通过关键码映射到表中一个位置来访问记录,以加快查找的速度。
栈:后进先出,栈顶允许进行插入和删除操作,栈底固定。
队列:先进先出,队头进行删除操作,队尾进行插入操作。(弹出顺序唯一, 即进一个出一个)
排序的时间复杂度
9.其他
求一个含有n个元素的集合的非空真子集数:
2
n
重复元素的个数
−
2
\frac{2^n}{重复元素的个数} - 2
重复元素的个数2n−2
(-2是因为一个是空集,还有就是真子集不能包含全部元素)
求字符串子串个数
一个长度为n的字符串有
1
+
∑
i
=
1
n
i
1 + \sum_{i = 1}^{n}i
1+∑i=1ni个子串
有点奇怪,就是
n
+
(
n
−
1
)
+
(
n
−
2
)
+
(
n
−
3
)
.
.
.
+
2
+
1
+
1
n + (n - 1) + (n - 2) + (n - 3)\ ...\ + 2 + 1 + 1
n+(n−1)+(n−2)+(n−3) ... +2+1+1(有个空串)
卡特兰数
其前几项为(从第零项开始) : 1, 1, 2, 5, 14, 42, 132, 429
通项公式:
C
n
2
n
n
+
1
\frac{C_{n}^{2n}}{n + 1}
n+1Cn2n
应用:求01串个数啦,啥括号序列啦啥的
求一个式子(中缀表达式)的后缀表达式或者是前缀表达式,按照运算顺序从后往前建树即可
因为我隔壁大佬不会什么前缀表达式和逆波兰表达式
所以我决定加亿点点解释
前缀表达式,又称波兰表达式, 其实就是中缀表达式建的树的前序遍历
后缀表达式,又称逆波兰表达式,就是树的后序遍历
如:
前缀表达式就是:- * 31+94
后缀表达式就是:31 * 94+ -
求值也很简单,还是拿上面例子来讲
前缀表达式就是从右往左扫描,每遇见一个数字就压入栈,每遇见一个运算符,就取两个栈顶去运算
1.遇见’+‘,把4,9代入算得13,代回式子中,变成-
∗
*
∗ 3 1 13
2.遇见’
∗
*
∗’, 把1 13代入算得13,代回式子中,变成- 3 13
3.遇见’-', 把13, 3代入算得10,最后得到值为10
后缀表达式就是从左往右扫描,每遇见一个运算符就取栈顶的两个数字去运算就好了(和前缀一样,只不过是从左往右扫描)
10.计算机类
计算机能直接执行的指令包括操作码和操作数两部分
ROM和RAM的区别
概念
RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。ROM(Read-Only Memory)即只读内存,是一种只能读出事先所存数据的固态半导体存储器。
RAM断电会丢失存储内容
对比
手机中的RAM和ROM分别对应电脑的内存和硬盘,内存负责程序的运行以及数据交换,有了它,电脑中的软件才能运行,并有了进程;而硬盘就是一块存储空间,您可以存储各种各样的文件,包括视频、照片、音乐、软件等。
11.算法类
模拟是一种最基本的算法,就是按照题目要求做,广义的模拟包括其他算法
贪心算法类似于“鼠目寸光”,该算法前提是满足“部分最优组成全局最优”(无后效性不知道是不是)
动态规划包括了很多类型的优化,动态转移方程是该算法的核心
12.亿点错题
1.bool型变量占8个二进制位,即一个字节
2.数组可以随机访问某一元素,但是插入,删除某一元素较为麻烦
但链表正好相反
3.程序中输入不能用逗号隔开,得要空格
4.时间复杂度表示时应该省略常数和系数
5.计算机内存条就是主存,内存中的数据断电就会消失
6.给出一个长度为n的顺序表,若是降序排序好了,二分查找其中一个元素,最多需要查找 ⌈ l o g 2 ( n ) ⌉ \left \lceil log_2(n) \right \rceil ⌈log2(n)⌉次
7.算法可以用自然语言,流程图,伪代码实现
8.Bill Gates开发的是Windows操作系统;IOS系统是手机平板系统,苹果开发的个人计算机操作系统是Mac OS;Linux是开源的,Windows不是开源的
9.在解决一些特点问题时,比如边权为1的最短路径问题,广搜(BFS)的效率并不低
10.位于贮存和CPU之间的存储器,用于提高执行效率 —— 高速缓存
11.NOI是NOIP,APIO,IOI,NOI中历史最悠久的
12.整数补码中,只有负整数的编码最高位为1,整数0只有一个唯一的编码
13.正确指向NOI网站的超链接
<a href="http://www.noi.cn">欢迎访问NOI网站</a>
14.拓扑排序中入度为0的结点不一定会排在入度大于0的结点的前面(多个连通块
15.浮点数可以表示很大的数是因为使用了阶码,精度高是因为有较长尾数
16.HTTP, TCP/IP,FTP都是网络协议