内容
信息学比赛
- 全国青少年信息学奥林匹克竞赛(NOI)在 1984 年开始。
- 国际信息学奥林匹克竞赛(IOI)在 1989 年开始。
- 全国青少年信息学奥林匹克联赛(NOIP)在 1995 年开始。
- APIO 在 2007 年开始。
计算机知识
- 寄存器是中央处理器的重要组成部分
- 程序运行时的空间复杂度是指程序运行时理论上所占的内存空间,
- 阶码指明了小数点在数据中的位置。
- Pascal语言,C语言和C++语言都属于 高级语言,编译性语言
- 编译器的主要功能是将源程序翻译成指令
- 存储器有主存和辅存,主存中有ROM和RAM,RAM在关机或停电情况下内容全部丢失,ROM不会。
原码,补码,反码
- 原码:最高位即为符号位(000正111负),其余位为原来的二进制。
- 反码:正数不变,负数其符号位不变,其余位取反
- 补码:正数不变,负数在其反码的基础上加一。
图像内存,运行内存,各种内存
1TB=210GB=220MB=230KB=240Byte1TB=2^{10}\rm{GB}=2^{20}\rm{MB}=2^30 \rm{KB}=2^{40} \rm{Byte}1TB=210GB=220MB=230KB=240Byte,1Byte=8Bit1\rm{Byte}=8\rm{Bit}1Byte=8Bit,其中Byte\rm{Byte}Byte为字节,Bit\rm{Bit}Bit为位。
设图片分辨率为x×yx\times yx×y,zzz位色,则内存为
x⋅y⋅zBit x\cdot y\cdot z \rm{Bit} x⋅y⋅zBit
设某计算机的CPUCPUCPU和内存之间的地址总线宽度是xxx位(Bit\rm{Bit}Bit),最多使用的内存为2xByre2^x\rm{Byre}2xByre
前缀,中缀,后缀表达式
假如给式子a+(b×c)−(d+e)a+(b\times c)-(d+e)a+(b×c)−(d+e)转化
第一步:按照运算符的优先级对所有的运算单位加括号,式子变成了:((a+(b∗c))−(d+e))((a+(b*c))-(d+e))((a+(b∗c))−(d+e))
第二步:转换前缀与后缀表达式
- 前缀:把运算符号移动到对应的括号前面,则变成:−(+(a×(bc))+(de))-( +(a \times (bc)) + (de))−(+(a×(bc))+(de)),把括号去掉:于是有前缀式子:−+a×bc+de-+a\times bc+de−+a×bc+de。
- 后缀:把运算符号移动到对应的括号后面,则变成:((a(bc)×)−(de)+)−((a(bc)\times )- (de)+ )-((a(bc)×)−(de)+)−,把括号去掉:于是有后缀式子abc×−de+−abc\times -de+-abc×−de+− 。
常见排序
排序方式 | 平均情况 | 最坏情况 | 稳定性 |
---|---|---|---|
插入排序 | O(n2)O(n^2)O(n2) | O(n2)O(n^2)O(n2) | 稳定 |
希尔排序 | O(n1.3)O(n^{1.3})O(n1.3) | 不稳定 | |
冒泡排序 | O(n2)O(n^2)O(n2) | O(n2)O(n^2)O(n2) | 稳定 |
快速排序 | O(nlogn)O(n\log n)O(nlogn) | O(n2)O(n^2)O(n2) | 不稳定 |
选择排序 | O(n2)O(n^2)O(n2) | O(n2)O(n^2)O(n2) | 不稳定 |
堆排序 | O(nlogn)O(n\log n)O(nlogn) | O(nlogn)O(n\log n)O(nlogn) | 不稳定 |
归并排序 | O(nlogn)O(n\log n)O(nlogn) | O(nlogn)O(n\log n)O(nlogn) | 稳定 |
var
a:array[1..4] of integer;
i, j, temp, n:integer;
begin
read(n);
for i := 1 to n do read(a[i]);
for i := 1 to n do
for j := 1 to n-i do
if a[j] > a[j + 1] then
begin
temp := a[j];
a[j] := a[j + 1];
a[j+1] := temp;
end;
for i:= 1 to n do write(a[i]);
end.
一个排序,若存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变, 则这个排序稳定,反之则不稳定。
视频,图片格式
常见的视频格式有:rmrmrm,rmvbrmvbrmvb,wmvwmvwmv,aviaviavi,mp4mp4mp4,3gp3gp3gp,mkvmkvmkv。
常见的图片格式有:jpgjpgjpg,jpegjpegjpeg,gifgifgif,pngpngpng,bmpbmpbmp
排列组合
排列公式
Anm=n(n−1)(n−2)…(n−m+1)=n!(n−m)! A_{n}^m=n(n-1)(n-2)\dots(n-m+1)=\frac{n!}{(n-m)!} Anm=n(n−1)(n−2)…(n−m+1)=(n−m)!n!
组合公式
Cnm=Anmm!=n!m!(n−m)! C_{n}^m=\frac{A_n^m}{m!}=\frac{n!}{m!(n-m)!} Cnm=m!Anm=m!(n−m)!n!
根据这个定义发现的公式
∑i=0nCni=2n \sum_{i=0}^nC_n^i=2^n i=0∑nCni=2n
Cnr+Cnr+1=Cn+1r+1 C_n^r+C_n^{r+1}=C_{n+1}^{r+1} Cnr+Cnr+1=Cn+1r+1
有重复元素的排列组合:假设有mmm个数,nnn个不同的数,分别为a1,a2,a3,…,ana_1,a_2,a_3,\dots,a_na1,a2,a3,…,an,每个数出现次数为b1,b2,b3,…,bnb_1,b_2,b_3,\dots,b_nb1,b2,b3,…,bn,那么本质不同的全排列方案数有
m!∏i=1nbi \frac{m!}{\prod \limits_{i=1}^n b_i} i=1∏nbim!
错排公式,定义D(1)=0,D(2)=1D(1)=0,D(2)=1D(1)=0,D(2)=1,则
D(n)=(n−1)[D(n−1)+D(n−2)] D(n)=(n-1)\left[ D(n-1)+D(n-2)\right] D(n)=(n−1)[D(n−1)+D(n−2)]
卡特兰
Cn=(2n)!/(n+1)!/n! C_n=(2n)!/(n+1)!/n! Cn=(2n)!/(n+1)!/n!
操作系统
常见电脑操作系统有:WindowsWindowsWindows,UNIXUNIXUNIX,XENIXXENIXXENIX,Mac OSMac\ \ OSMac OS
进制转化
RRR进制转十进制,将(3506.2)8(3506.2)_8(3506.2)8转化为十进制。
(3506.2)8=6×83+5×82++0×81+6×80+2×8−1=1862.25 (3506.2)_8\\ \begin{aligned} =& 6\times 8^3+5\times 8^2++0\times 8^1+6\times 8^0+2\times 8^{-1}\\ =&1862.25 \end{aligned} (3506.2)8==6×83+5×82++0×81+6×80+2×8−11862.25
十进制转RRR进制:将(5.3125)10(5.3125)_{10}(5.3125)10转化为二进制数,整数部分为(101)2(101)_2(101)2,剩下(0.3125)10(0.3125)_{10}(0.3125)10
(0.3125)100.3125×2=0.6250.625×2=1.250.25×2=0.50.5×2=1,0
\begin{aligned}
(0.3125)_{10}\\
0.3125\times 2=& 0.625\\
0.625\times 2=&1.25\\
0.25\times 2=&0.5\\
0.5\times 2=&1,0
\end{aligned}
(0.3125)100.3125×2=0.625×2=0.25×2=0.5×2=0.6251.250.51,0
所以(0.3125)10=(0.0101)2(0.3125)_{10}=(0.0101)_2(0.3125)10=(0.0101)2
计算机协议
计算机发展历史
第一台电子计算机:ENIACENIACENIAC
第一台具有储存程序功能的的计算机:EDVACEDVACEDVAC
几个电子器件
- 电子管(1496∼19581496\sim 19581496∼1958),第一台这样的计算机是ENIACENIACENIAC
- 晶体管(1958∼19641958\sim 19641958∼1964)
- 中小规模集成电路(1964∼19751964\sim 19751964∼1975)
- 大规模,超大规模集成电路(1975∼now1975\sim now1975∼now)
逻辑运算
- ¬表示not
- ∧表示and
- ∨表示or
- ⊻或⊕表示xor
二叉树
完全二叉树指按顺序的二叉树
满二叉树是满的。
语法
@是求一个值的位置,^是这个位置的值。