让我们先来认识一下几位 巨佬
(巨佬顺序按考试出现率排列,从高到低):
名字 | 生卒年 | 国籍 | 信息学主要贡献 | 称号、身份 |
---|---|---|---|---|
艾伦·麦席森·图灵 | 1912—1954 | 英 | 图灵机,图灵奖,图灵实验 | 计算机科学之父,人工智能之父 |
约翰·冯·诺依曼 | 1903-1957 | 美籍匈牙利 | 体系构想,程序存放于内存 | 计算机之父、博弈论之父 |
克劳德·艾尔伍德·香农 | 1916—2001 | 美 | 提出了信息熵的概念 | 信息论的创始人 |
姚期智 | 1946—现在 | 中 | 通讯复杂度,伪随机数生成 | 2000图灵奖,奠定现代密码学 |
艾达·拉芙蕾丝 | 1815—1852 | 英 | Ada语言(后人纪念她) | 第一个程序员,计算机程序创始人 |
关于奖项
名称 | 设立 | 设立时间 | 美称,意义 |
---|---|---|---|
图灵奖 A.M. Turing Award | 美国计算机协会(ACM) | 1966 | 计算机界诺贝尔奖 |
约翰·冯诺依曼奖 | 电气和电子工程师协会(IEEE) | 1999 | |
中国计算机学会王选奖(CCF王选奖) | 中国计算机学会 | 2005 | |
中国人还是要多了解一点的。
图灵奖首位也是唯一一位华裔计算机学者
(对计算机理论包括伪随机数生成,密码学与通信复杂度的突出贡献)
在清华大学创立:
计算机科学实验班“姚班”
理论计算机科学研究中心(ITCS)
交叉信息研究院(IIIS)
量子信息中心(CQI)
下面放几张图灵的帅照,还有一部关于图灵的电影《模仿游戏》,强烈推荐!
R进制转十进制:按权展开(小数,次方数取负)
十进制转R进制:整数除R取余法(倒着取),小数乘二取整法(正着取)
大小写是一样的
数学上e表示2.718281828459……,但信奥里不同。
2000 = = = 2e3 = = = 2e+03 = = = 2e+3 ≠ \neq = 2e1+3 = = = 23
运算优先级(从高到低)
( ) () ()
n o t not not
∗ * ∗ , / / /, m o d mod mod, a n d and and
x o r xor xor, + + +, − - −, o r or or
= = =, ⩽ \leqslant ⩽, ⩾ \geqslant ⩾, < < <, > > >
与 | ∧ \wedge ∧ | and | 两真为真 | ∧ \wedge ∧符号像“且”,使a ∧ \wedge ∧b为真,需要a为真且b为真 |
或 | ∨ \vee ∨ | or | 有真为真 | ∨ \vee ∨优先级低,且有真为真,运算中这点性质可以简化运算,遇 ∨ \vee ∨只需要判断一端 |
非 | ! ! !或 ¬ ¬ ¬ | not | 是假为真 | |
异或 | ⨁ \bigoplus ⨁ | xor | 不同为真 | PS.数字的逻辑运算,转化为二进制,缺位补零,垂直对应两位运算 |
逻辑运算符只能用于bool型的逻辑运算,位运算符还能用于数值的逻辑运算
位运算就是直接对整数在内存中的二进制位进行操作,它是二进制对应位进行逻辑运算的结果
二叉树的遍历 | 顺序 | 例子 |
---|---|---|
先序遍历 | 根,左,右 | ABCDEF |
中序遍历 | 左,根,右 | CBDAEF |
后序遍历 | 左,右,根 | CDBEFA |
二叉树性质 |
---|
二叉树第 i 层至多有 2 i − 1 2^{i-1} 2i−1个结点数 |
深度为 k至多有 2 k − 1 2^{k}-1 2k−1个结点 |
叶子结点数 n 0 n_{0} n0,度为2的结点数 n 2 n_{2} n2,n0 = n2 + 1 |
证明:设n1为度数为1,n2为度数为2,n0为叶子结点数,n为结点数
n 1 + n 2 + n 0 = n n1 + n2 + n0 = n n1+n2+n0=n
1 + 2 ∗ n 2 + n 1 = n 1 + 2*n2 + n1 = n 1+2∗n2+n1=n
所以 n 0 = n 2 + 1 n0 = n2 + 1 n0=n2+1
满二叉树性质(定义) |
---|
深度为 k有 2 k − 1 2^{k}-1 2k−1个结点 |
完全二叉树性质 |
---|
除了最下层,其他每层都饱满,最下层的结点都集中在该层最左边的若干位置 |
没有左儿子,就一定没有右儿子 |
儿子结点编号 /2 为父亲编号,若父亲编号A,左儿子2A,右儿子2A+1 |
n个结点,深度为 l o g 2 log_{2} log2n+1 取整 |
类似合并果子:洛谷#1090合并果子
每次选取权值最小的两个点连为一个点,两者和为新点的权值。
路径长度PL | 树根到树的每个节点的路径长度(长度皆为1)之和 | 完全二叉树最短 |
带权路径长度WPL | 树的所有叶子节点的带权长度(该节点到根节点路径长度与节点上权的乘积) | 哈夫曼树最短 |
字母出现的次数作为权值,进行哈夫曼树的构造,左为0,右为1,从根沿每条路径到达叶子节点的代码排列起来,便得到了哈夫曼编码。
代入值为1e6是安全的 | |
---|---|
O ( n ) O(n) O(n) | 部分贪心 |
O O O(nlog 2 _{2} 2n) | 带有分治思想的部分算法 |
O O O(n 2 ^{2} 2) | 部分动态规划 |
O O O(n 3 ^{3} 3) | 部分动态规划,部分搜索算法 |
O O O(n ! ! !) | 部分搜索算法 |
O ( m ∗ n ) O(m*n) O(m∗n) | 遍历矩阵等 |
省时间 | 省空间 |
---|---|
位运算,+ - 比 * / % 快 | 压缩存储,重复利用,尽量用int,不用long long |
32位二进制,最高位 0表示正 1表示负 | |
---|---|
原码 | 首位符号位,其余真值 |
反码正数 | 与原码一样 |
反码负数 | 符号位和原码一样,其他位相反 |
补码正数 | 与原码一样 |
补码负数 | 等于反码加一 |
最高位不进位,超过取模 2 32 2^{32} 232
算法 + 数据结构 = 程序
集合结构 | 线性结构 | 树形结构 | 图形结构 |
---|---|---|---|
同属一个集合 | 一对一的关系 | 一对多的关系 | 多对多的关系 |
顺序存储结构(数组)
链式存储结构(链表)
数组和线性表
栈和卡特兰数
队列:允许插入的一端称为队尾(rear),允许删除的一端称为队头(front)
循环队列:头指针指向队列中队头元素的前一个位置,尾指针指示队尾元素在队列中的当前位置
结点的度:结点拥有的子树数
见下面 “ “ “ 图论算法基础 ” ” ”
基本概念知识
最大公约数,最小公倍数
扩展欧几里得
欧拉函数
素数筛法
费马小定理
威尔逊定理
乘法逆元
中国剩余定理
线性同余方程
组合数
栈和卡特兰数
加法原理
乘法原理
鸽巢原理
容斥原理
数列(等差,等比,斐波那契)
数据结构 + 算法 = = = 程序
数据结构:数据的类型,数据的组织形式
算法:对程序操作流程的描述
算法 | 基本思想 | 适用条件 | 算法优化 | 优点 | 缺点 | 应用 |
---|---|---|---|---|---|---|
枚举 | 穷举所有可能解 | 明确的解空间 | 剪枝 | 易理解 | 效率低 | 排列,子集 |
递推 | 寻找规律推式子 | 关系,边界条件明显 | 速度快 | 思路难 | 组合计数,博弈,DP | |
递归 | 调用本身 | 有明确递归结束条件 | 变参–>全局 | 结构清晰可读 | 效率低,易爆内存 | 分治,DFS |
分治 | 大事化小 | 最优子结构,子问题独立可合并 | 二分,排序,点对 | |||
贪心 | 考虑局部最优 | 无后效性 | 部分背包 | |||
回溯 | DFS返回 | DFS | 迭代加深 | DFS | ||
动态规划 | 多阶段决策最优化 | 无后效性,重叠子问题,最优子结构 | 记录中间状态 | 背包,区间,树 |
NOIP2016玩具谜题
NOIP2014生活大爆炸版石头剪刀布
代表:兔子繁殖问题
公式: F(n) = F(n-1)+F(n-2)
边界条件 F ( 0 ) = 0 F(0)=0 F(0)=0, F ( 1 ) = 1 F(1)=1 F(1)=1
Hanoi问题是可以拓展的,比如4根柱子,5根柱子……甚至1500根柱子!
题目来自一次校内模拟题T2(感兴趣可自行查阅)
设有 n n n条封闭曲线画在平面上,任何两条封闭曲线恰好交于两点,任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数
公式: A(n) = A(n-1)+2(n-1)
见上面
n n n个有区别的球放到 m m m个相同的盒子中,要求无一空盒,其方案数用 S ( n , m ) S(n,m) S(n,m)表示,称为第二类 S t i r l i n g Stirling Stirling数
公式: S2(n,m) = mS2(n-1,m)+S2(n-1,m-1)
边界条件: S 2 ( n , 0 ) = 0 S2(n,0) =0 S2(n,0)=0, S 2 ( n , 1 ) = 1 S2(n,1)=1 S2(n,1)=1, S 2 ( n , n ) = 1 S2(n,n)=1 S2(n,n)=1, S 2 ( n , k ) = 0 S2(n,k)=0 S2(n,k)=0 ( k > n ) (k > n) (k>n)
DFS算法优化
最优化剪枝
可行性剪枝
记忆化搜索
改变搜索顺序
优化搜索策略
预处理
改写*IDA算法
BFS算法优化
判重优化:hash,二叉排序树
双向BFS或启发式搜索
改写A*算法
二分优化
迭代加深搜索
通过限定下限k,然后允许深度优先搜索k层,一旦没有找到有效解,则增大下界
DFS | BFS | |
---|---|---|
优点 | 适合回溯 | 启发式更易实现 |
参数传递,状态修改恢复方便 | 能立刻停止 | |
自项向下处理 | 解决“最小步数”“深度最小”问题 | |
记忆化搜索容易 | 迅速找到答案小的解 | |
缺点 | 栈易溢出 | 空间消耗大 |
不容易输出方案 | 状态重复排除耗时多 | |
不易立即结束搜索 |
NOIP2012借教室
NOIP2013转圈游戏
NOIP2012国王游戏
NOIP2013积木游戏
NOIP2015跳石头
素数环问题
背包型动态规划:POJ1014、POJ1068
序列型动态规划 :POJ1044、POJ1576、POJ3027
区间型动态规划:POJ1048、POJ1154、POJ1166
棋盘型动态规划:POJ1010、POJ1169、POJ1219、POJ1220
划分型动态规划:POJ1017、POJ1039、POJ1040
树型动态规划:POJ1163、POJ1380
接收和存储信息,按程序快速计算,判断并输出处理结果
主要技术指标:
字长:
32位CPU:
64位CPU:
主频:
运算速度:
存储容量:
容量换算
除了 b b b——>B是8倍,其他都是1024倍(注意,Kb与KB不同,其他同理)
冯·诺依曼体系结构
组成部分:
中央处理器(CPU):
运算器:
控制器:
存储器:
二级缓存
内存:
主存:
外存:
硬盘:
光盘:
外设:
总线与接口
软件
计算机网络是由地理位置分散的、具有独立功能的多个计算机系统,经通讯设备和线路互相连接,并配以相应的网络软件,以实现通信和资源共享的系统
信息交换 | 计算机最基本的功能 | 系统通信:传送电子邮件,发布新闻消息,电子购物,电子贸易,远程电子教育 |
资源共享 | 资源包括软硬件资源 | 增强网络上计算机的处理能力,提高计算机软硬件率用率 |
分布式处理 | 复杂内容划分后完成 | 增强系统性能 |
总线拓扑 | 星型拓扑 | 环型拓扑 | 树型拓扑 | 网状拓扑 | 混合拓扑 | 蜂窝拓扑 |
服务器 | 负责网络资源管理和用户服务的计算机,网络系统核心设备,分类(文件,远程访问,数据库,打印) |
工作站 | 具有独立处理能力的计算机,用户向服务器申请服务(如传输文件、打印文件的终端设备) |
网卡 | 网络适配器,计算机之间传输介质互相通信的接口,插在扩展槽中,将数字信号转换成电子或电磁信号 |
调制解调器 | M o d e m Modem Modem信号转换装置,将计算机的数字信号与通信线路的模拟信号相互“调制”,连接计算机与公用电话线 |
集线器 | H u b Hub Hub局域网连接设备,具有多个端口可连接多台计算机,宽带共享 |
交换机 | 模拟用网桥连接各个网络的方式工作 |
网桥 | B r i d g e Bridge Bridge局域网使用的连接设备,扩展网络距离,减轻网络负载,排除非本网段的信号,使信号高效使用信道 |
路由器 | R o u t e r Router Router互联网使用的连接设备,可以连接网络,有网桥所有功能,还具有路径的选择功能 |
网关 | 复杂的网络连接设备,工作在OSI高三层,连接异构网络,转换不兼容的高层协议 |
数据通信软件 | 通信功能 | M S N MSN MSN、 Q Q QQ QQ |
网络操作系统 | 控制和管理网络资源的软件 | W i n d o w s Windows Windows、 U n i x Unix Unix、 L i n u x Linux Linux |
网络应用软件 | 网络能够为用户提供服务的 “ “ “软件 ” ” ” | 浏览查询软件,传输文件,远程登录软件,电子邮件 |
按地理范围分 | |
---|---|
局域网 | LAN |
城域网 | MAN |
广域网 | WAN |
按传输速率分 | 传输速率的单位 b p s bps bps |
---|---|
低速网 | K b p s − M b p s Kbps-Mbps Kbps−Mbps |
高速网 | M b p s − G b p s Mbps-Gbps Mbps−Gbps |
按照传输信道的宽度分 | 带宽单位 H z Hz Hz |
---|---|
窄带网 | K H z − M H z KHz-MHz KHz−MHz |
宽带网 | M H z − G H z MHz-GHz MHz−GHz |
∗ * ∗带宽指传输信道的宽度
按传输介质分 | |
---|---|
有线网 | 有线介质(双绞线,同轴电缆,光导纤维) |
无线网 | 无线介质(移动通信网(3G、4G、5G、GPRS)、无线局域网(WiFi)、微波,激光,红外线) |
I S O ISO ISO(国际标准化组织) 1981 1981 1981推出 “ “ “开放系统互联结构模型 ” ” ”即 O S I OSI OSI标准
O S I OSI OSI将网络协议规范化了的逻辑参考模型,是一个标准,不是特定的协议或系统
世界上规模最大的计算机网络
1994.4 1994.4 1994.4加入
1997.4.26 1997.4.26 1997.4.26
C S T n e t CSTnet CSTnet(科技网)、 C E R n e t CERnet CERnet(教育科研网)、 C H I N A n e t CHINAnet CHINAnet(中国互联网)、 c h i n a G B N chinaGBN chinaGBN( G o l d B r i d g e Gold Bridge GoldBridge 金桥网)相互连通
可以显示网页服务器或者文件系统的 H T M L HTML HTML(超文本标记语言)文件
常见浏览器:XX浏览器(QQ、搜狗、UC等)、 I n t e r n e t Internet Internet E x p l o r e r Explorer Explorer、 F i r e f o x Firefox Firefox、 S a f a r i Safari Safari、 O p e r a Opera Opera、 G o o g l e Google Google C h r o m e Chrome Chrome
计算机网络中一系列的通信规则和约定的集合
I n t e r n e t Internet Internet的核心协议: T C P / I P TCP/IP TCP/IP
局域网使用: I P X / S P X IPX/SPX IPX/SPX
传输控制协议、因特网互联协议,网络通讯协议
最为成功的网络体系结构和协议规范
这是一组协议,包括上百个各种功能的协议,其中 T C P TCP TCP和 I P IP IP是最核心的两个协议
I P IP IP协议适用于所有类型的网络
T C P TCP TCP协议处理 I P IP IP协议所遗留的通信问题,为应用程序提供可靠的通信连接,并能自动适应网络的变化
PS.IP地址即使在初赛出现也只有一道选择,内容却繁琐难度较大,建议略过,时间充裕可学
类别 | 首字节 | 地址范围 | 缺省子网掩码 |
---|---|---|---|
A类网 | 0 | 1.0.0.0~127.255.255.255 | 255.0.0.0 |
B类网 | 10 | 128.0.0.0~191.255.255.255 | 255.255.0.0 |
C类网 | 110 | 192.0.0.0~223.255.255.255 | 255.255.255.0 |
D类网 | 1110 | 224.0.0.0~239.255.255.255 | |
E类网 | 11110 | 240.0.0.0~247.255.255.255 |
10.0.0.0 10.0.0.0 10.0.0.0 ~ 10.255.255.255 10.255.255.255 10.255.255.255
172.16.0.0 172.16.0.0 172.16.0.0 ~ 172.31.255.255 172.31.255.255 172.31.255.255
192.168.0.0 192.168.0.0 192.168.0.0 ~ 192.168.255.255 192.168.255.255 192.168.255.255
通用最高层域名: e d u edu edu(教育、科研机构) 、 c o m com com(商业机构) 、 n e t net net(网络服务机构) 、 i n f o info info(信息服务机构) 、 o r g org org(专业团体) 、 g o v gov gov(政府机构)
国际最高层域名: i n i ini ini(国际性组织或机构)
国家最高层域名:
Com | 商业机构 | CN | 中国 |
EDU | 教育机构 | JP | 日本 |
GOV | 政府机构 | HK | 香港 |
Int | 国际机构 | UK | 英国 |
Mil | 军事机构 | CA | 加拿大 |
Net | 网络服务机构 | DE | 德国 |
org | 非赢利机构 | FR | 法国 |
D N S DNS DNS域名管理服务器
H T T P HTTP HTTP 超文本传输协议
H T M L HTML HTML 超文本标记语言
F T P FTP FTP 文件传输协议
T e l n e t Telnet Telnet 远程登录
S M T P SMTP SMTP P O P 3 POP3 POP3 简单邮件传输协议(发送收电子邮件,接收电子邮件)
U R L URL URL 统一资源定位符
计算机病毒是一种程序。
通过修改其他程序,将自身的精确拷贝或者可能演化的拷贝插入其他程序,从未感染其它程序。
利用计算机软件和硬件所固有的脆弱性编制的一组指令集或程序代码。
1994.2.18,我国正式颁布《中华人民共和国计算机信息系统安全保护条例》:
计算机病毒,是指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。
计算机病毒特性:
繁殖性、破坏性、潜伏性、隐蔽性、可触发性、传染性(通过软盘、硬盘、移动硬盘、计算机网络等)
计算机病毒危害
1.破坏数据、信息
2.占用磁盘
3.抢占系统资源
4.影响计算机运行速度
5.计算机病毒错误与不可预见的危害
6.计算机病毒的兼容性对系统运行的影响
7.给用户带来心理压力
8.业务损失
9.法律问题
计算机分类
按病毒存在的媒体分类
网络病毒 | 通过计算机网络感染网络中的可执行文件 |
文件病毒 | 感染计算机中的文件(如COM,EXE,DOC等) |
引导型病毒 | 感染启动扇区(Boot)和硬盘的系统引导扇区(MBR) |
混合型病毒 | 上述三种情况混合 |
按病毒传染的方法分类
引导扇区传染病毒 | 使用病毒的全部或部分代码取代正常的引导记录,隐藏正常的引导记录 |
执行文件传染病毒 | 寄生在可执行程序中,程序执行即激活 |
网络传染病毒 | 当前病毒主流,通过互联网传播 |
按病毒的破坏能力分
无害型 | 减少磁盘的可用空间 |
无危险型 | 减少内存,显示图像,发出声音及同类音响 |
危险型 | 在计算机系统操作中造成严重的错误 |
非常危险型 | 删除程序,破坏数据,清除系统内存区和操作系统中的重要信息 |
按病毒算法分类
伴随型病毒 | 不改变文件,产生EXE的伴随体,DOS加载时优先执行伴随体,再由伴随体加载执行原来的EXE文件 |
蠕虫型病毒 | 不改变文件和资料信息,利用网络,从内存转移到另一机器内存,计算网络地址,将病毒通过网络发送 |
寄生型病毒 | 依附在系统的引导扇区或文件中,通过系统的功能传播 |
练习型病毒 | 病毒自身包含错误,不能很好地传播 |
变形病毒 | 传播过程中会改变内容和长度 |
按计算机病毒的链接方式分类
源码型病毒 | 攻击高级语言编写的程序,在程序编译前插入源程序,成为合法的一部分 |
嵌入型病毒 | 将自身嵌入现有程序,把计算机病毒的主体程序与攻击对象以插入的方式链接 |
外壳型病毒 | 包围在主程序四周,易于编写,易于发现,可以通过测试文件大小发现 |
操作系统型病毒 | 将自身程序加入或取代部分操作系统进行工作,可以导致整个系统瘫痪(圆点病毒,大麻病毒) |
按病毒攻击操作系统分类
Microsoft DOS |
Microsoft Windows95/98/ME |
Microsoft WindowsNT/2000/XP |
Unix(Linux) |
Macintosh(MacMag病毒,Scores病毒) |
OS/2(AEP病毒) |
计算机病毒典型人物
时间 | 人物 | 事件 |
---|---|---|
1983.11.03 | 弗雷德·科恩博士 | 研制成第一个计算机病毒(Unix),伦·艾德勒曼将它命名为计算机病毒 |
1988.11.02 | 莫里斯(康奈尔大学) | 将蠕虫病毒放入互联网 |
1998.5 | 陈盈豪(台湾大学) | CIH病毒,又名切尔诺贝利 |
2003.8.29 | 杰弗里·李·帕森 | 冲击波电脑病毒制造者,被捕 |
2007 | 李俊(武汉新洲区人) | 熊猫烧香病毒 |
计算机病毒命名规则(CARO命名规则)
1.病毒家族名+病毒组名+大变种+小变种+修改者
2.加前缀标明病毒类型(WM,Win32,VBS)
计算机病毒防治技术:
特征码扫描法,虚拟执行技术,智能引擎技术,计算机监控技术,未知病毒查杀技术,压缩智能还原技术,多层防御,集中管理技术,病毒免疫技术
常见防病毒软件:
金山毒霸,瑞星杀毒, K V 3000 KV3000 KV3000 , P C − C i l l i n V i r u s B u s t e r PC-Cillin VirusBuster PC−CillinVirusBuster , N o r t o n A n t i V i r u s Norton AntiVirus NortonAntiVirus,
F − S e c u r e A n t i v i r u s F-Secure Antivirus F−SecureAntivirus , M c a f e e V i r u s S c a n Mcafee VirusScan McafeeVirusScan , N o d 32 Nod32 Nod32 , K a s p e r s k y A n t i v i r u s Kaspersky Antivirus KasperskyAntivirus
主要防病毒组织:
Wildlist国际组织、病毒公告牌、29A病毒技术组织、亚洲反病毒研究者协会( A V A R AVAR AVAR)、国家计算机病毒应急处理中心,病毒观察,中国绿盟,安全焦点,病毒资讯网,国际计算机安全联合会( I C S A ICSA ICSA)
基于计算机的信息处理过程
1.信息采集和表示:数字,字符,声音,图形,图像(计算机编码技术)
2.信息存储:存储器的分类,管理,访问等(计算机软硬件系统)
3.信息管理:采集,处理,输出(计算机程序设计)
4.信息组织:(计算机数据库技术)
5.信息传输,信息检索:(计算机网络技术)
见上
见上
美国信息交换标准代码,国际上通用的微型机编码
由8位二进制数组成,其中最高位为较验位,用于传输过程检验数据正确性,其余七位表示一个字符
我国据ASCII码制定,52个英文字母,32个标点符号,运算符和34个控制字符,D7恒为0
汉字交换码:
用于汉字外码和内码的交换
每个字符由一个2个字节的代码组成,高字节表示区号,低字节表示位号
汉字的机内码:
在计算机内部传输,存储,处理的汉字编码
字节最高位为 “ 1 ” “1” “1”为汉字符,为 “ 0 ” “0” “0”为 A S C I I ASCII ASCII字符
机内码在国际码的基础上将两个字节的最高位一律由 “ 0 ” “0” “0”改 “ 1 ” “1” “1”
汉字的输入码:
输入码为外码
数字编码,拼音码,字形码,音形码
无论采用哪一种汉字输入法,当用户向计算机输入汉字时存入计算机的总是它的机内码
各种汉字输入码(外码)===> 键盘管理程序 ===> 统一的汉字机内码(内码)
汉字的字形码
表示汉字字形信息(结构,形状,笔划)的编码,用于实现计算机对汉字的输出(显示,打印)
最常用的表示方式:点阵形式,用二进制的 “ 0 ” " 1 " “0”"1" “0”"1"表示暗亮。
字模码占的的字节数由汉字的字形决定
简易型16*16 | 32字节 |
普通型24*24 | 72字节 |
提高型32*32 | 128字节 |
精密型48*48 | 288字节 |
繁体字
汉字处理过程
输入 ===> 输入码(外码) ===> 键盘管理程序(输入法) ===> 汉字机内码(内码) ===> 字形码 ===>输出
多媒体信息:声音,图形(矢量图),图像(静态图像——位图,视频图像)等
模拟信号:时间和幅度上都是连续变化的信号
数字信号:时间和幅度上都是离散的信号
模拟信号
模拟声音信号 ==> 采样 ==> 量化 ==> 编码 == >数字声音信号
采样:
在某些特定的时刻对这种模拟信号进行测量叫做采样
采样所得到的信号称为离散时间信号(时间上离散,幅度上连续)
量化:
把信号幅度取值的数目加以限定,由有限个数值组成的信号就称为离散幅度信号。
编码:
用预先规定的方法将文字,数字或其他对象编成数码,或将信息,数据转换成规定的电脉冲信号。
信息只有经过数字化编码后才能表示,存放和传递
采样频率:
单位时间的采样次数
采样精度(样本位数)(位深度):
采样频率越高,采样精度越高,信号失真度越小,所得数据占用的存储空间越大
声音文件的数据量
声音文件的数据量=采样频率( H z Hz Hz) * 样本精度( b i t bit bit) * 声道数 * 时间( s s s)
采样 ==> 量化 ==> 编码
采样:
空间连续坐标(x,y)的离散化 ==> 像素点
量化:
幅度f(x,y)的离散化 == > 灰度级的整量(明暗程度,色彩度) ==> 用若干位二进制码表示一个像素点的灰度值
数字图像:空间上和灰度级上都离散的图像。
图像采样的点数称为图像分辨率,用点的“行数*列数”
表示每个像素颜色使用的二进制位数称为像素深度或位深度(1位,4位,8位,24位,32位)
图像文件大小
图像文件的大小=位深度 * 像素数
B M P BMP BMP(不压缩), G I F GIF GIF(压缩效率高,存储空间小), J P E G JPEG JPEG(有损压缩)
组成 | 特点 | ||
---|---|---|---|
机器语言 | “0” “1” | 计算机能直接识别执行,不同机型计算机不相通 | |
汇编语言(符号语言) | 英文字母,符号串 | 面向具体机型,不同种类计算机不相通 | PUSH AX、PUSH BX、POP AX、BX、ADD CX、 |
高级语言 | 面向对象,只要配备相应的高级语言的编译或解释程序,就通用 | BASIC、Pascal、C、C++、VC、VB、Delphi、JAVA |
高级语言:
接近算法语言
为程序员提供结构化程序设计的环境和工具,是得设计出来的程序可读性好,可维护性强,可靠性高
高级语言与计算机硬件较远,具有可移植性,重用率高
自动化程度高,开发周期短
应用角度 | 基础语言(通用语言) | FORTRAN、COBOL、BASIC、ALGOL | |
结构化语言 | PASCAL、C、Ada | 直接支持结构化的控制结构 | |
专用语言 | APL、Forth、LISP | 为某种特殊应用而专门设计 | |
描述客观系统 | 面向过程语言 | 大多数 | 数据结构+算法 |
面向对象语言 | Delphi、Visual Basic、Java、C++ | 对象+消息 |
程序设计语言发展趋势
模块化、简明性、形式化
C++常用STL结构与函数
排序
s o r t ( v . b e g i n ( ) , v . e n d ( ) , m y c m p ) ; sort(v.begin(),v.end(),mycmp); sort(v.begin(),v.end(),mycmp);
左闭右开
l o w low low _ b o u n d bound bound ( v . b e g i n ( ) , v . e n d ( ) , c ) (v.begin(),v.end(),c) (v.begin(),v.end(),c)
在一个有序数组里找出刚好大于等于c的数
u p p e r upper upper _ b o u n d bound bound ( v . b e g i n ( ) , v . e n d ( ) , c ) (v.begin(),v.end(),c) (v.begin(),v.end(),c)
在一个有序数组里找出刚好大于c的数
p r e v prev prev _ p e r m u t a t i o n permutation permutation ( v . b e g i n ( ) , v . e n d ( ) ) (v.begin(),v.end()) (v.begin(),v.end())
可用于求出当前v数组序列的上一个排列
N e x t Next Next _ p e r m u t a t i o n permutation permutation ( v . b e g i n ( ) , v . e n d ( ) ) (v.begin(),v.end()) (v.begin(),v.end())
可用于求出当前v数组序列的下一个排列
代表一个不定长数组
V e c t o r < T y p e > A Vector< Type > A Vector<Type>A
A . c l e a r ( ) A.clear() A.clear()清空
A . p u s h A.push A.push_ b a c k ( ) back() back()尾部添加元素
A . p o p A.pop A.pop_back()$尾部删除元素
A . e m p t y ( ) A.empty() A.empty()检查是否为空,空返回 f a l s e false false
一个存储集合的容器
s e t < T y p e > A set< Type > A set<Type>A
A . i n s e r t ( ) A.insert() A.insert()插入a
A . e r a s e ( ) A.erase() A.erase()删除a
A . f i n d ( ) A.find() A.find()查找a,如果查找成功返回对应指针,查找失败返回尾指针
A . b e g i n ( ) A.begin() A.begin()返回头指针
A , e n d ( ) A,end() A,end()返回尾指针,尾指针不存储具体内容
存储 k e y key key到 v a l u e value value的映射
m a p < T y p e 1 , T y p e 2 > A map< Type1,Type2> A map<Type1,Type2>A
T y p e 1 Type1 Type1 是 k e y key key 类型, T y p e 2 Type2 Type2 是 v a l u e value value 类型
可以通过 A [ B ] = C A[B]=C A[B]=C 这种形式赋值, B B B 为 T y p e 1 Type1 Type1, C C C 为 T y p e 2 Type2 Type2
A . c l e a r ( ) A.clear() A.clear()清空
A . e r a s e ( B ) A.erase(B) A.erase(B)删除(B可以是key值也可以是指针)
A . e m p t y ( ) A.empty() A.empty()判断是否为空
A . b e g i n ( ) A.begin() A.begin()头指针
A , e n d ( ) A,end() A,end()尾指针
一个包含两个可以不同的数据值的类型
p a i r < T y p e 1 , T y p e 2 > A pair< Type1,Type2> A pair<Type1,Type2>A
m a k e make make _ p a i r ( t 1 , t 2 ) pair(t1, t2) pair(t1,t2)赋值
A.first, A.second;返回对应的值
模拟栈
s t a c k < T y p e > A stack < Type > A stack<Type>A
A . p u s h ( ) A.push() A.push()入栈
A . p o p ( ) A.pop() A.pop()出栈
A . t o p ( ) A.top() A.top()返回栈顶元素
模拟队列
q u e u e < T y p e > A queue < Type > A queue<Type>A
A . p u s h ( ) A.push() A.push()入队
A . p o p ( ) A.pop() A.pop()出队
A . f r o n t ( ) A.front() A.front()返回队首元素
优先队列,一个类似堆的数据结构
P r i o r i t y Priority Priority _ q u e u e < T y p e > A queue
A . p u s h ( ) A.push() A.push()插入
A . p o p ( ) A.pop() A.pop()删除最值(默认最大值)
A . t o p ( ) A.top() A.top()返回最值
处理二进制串的"数组"
b i t s e t < n > A bitset
支持所有位运算
A . c o u n t ( ) A.count() A.count()统计1的个数
A . r e s e t ( ) A.reset() A.reset()清0
A . s e t ( ) A.set() A.set()全赋为1
A . s i z e ( ) A.size() A.size()返回位数
N O I NOI NOI:全国信息学奥赛
主办方:中国计算机协会
官方网站1
官方网站2
重点注意:简介,联赛大纲,编程规则,标准竞赛环境,技术问题说明
N O I NOI NOI : 1984 1984 1984、各省五名,至少一名女选手
N O I P NOIP NOIP : 1995 1995 1995
I O I IOI IOI : 1989 1989 1989、2000中国北京主办,CCF承办
A P I O APIO APIO : 2007 2007 2007 、中国计算机协会
使用的操作系统: L i n u x Linux Linux
使用的 L i n u x Linux Linux发行版: N O I NOI NOI L i n u x Linux Linux
不可使用网络(互联网,局域网)
不可私自重启电脑
选手允许使用的编程语言: C + + C++ C++、 C C C(2022部分停用)、 P a s c a l Pascal Pascal(2022全部停用)
提交的有效文件类型:答案文件,源程序
比赛题目类型:非交互式程序题、交互式程序题、答案提交题
参加目的:提高水平、为国争光、增进交流、(!!不是为了得奖)
可以用来调试程序的程序: g d b gdb gdb
从字符控制台切换回桌面环境使用的快捷键: C t r l + A l t + F 7 Ctrl+Alt+F7 Ctrl+Alt+F7
默认使用的 s h e l l shell shell: b a s h bash bash
对程序源文件大小的限制:小于 100 K B 100KB 100KB
对程序使用内存的限制:以硬件资源为限
c p cp cp m y . c my.c my.c m y c . b a k myc.bak myc.bak
继续执行的快捷键: F 4 F4 F4
单步运行 ( s t e p (step (step o v e r ) over) over):快捷键: F 6 F6 F6
支持多窗口编辑的 I D E IDE IDE
C + + C++ C++ I D E IDE IDE环境: A n j u t a Anjuta Anjuta、 G U I D E GUIDE GUIDE
开始运行程序的快捷键: F 9 F9 F9
单步运行 ( s t e p (step (step o v e r ) over) over):快捷键: F 8 F8 F8
使用单步调试 ( s t e p (step (step o v e r ) over) over):在 E n v i r o n m e n t Environment Environment − > -> −> D e b u g g e r Debugger Debugger O p t i o n s Options Options中配置
支持多窗口编辑的 I D E IDE IDE
P a s c a l Pascal Pascal I D E IDE IDE环境: L a z a r u s Lazarus Lazarus、 G U I D E GUIDE GUIDE
方法:单步调试,使用 p r i n t print print类语句打印中间结果,读源代码
可以不使用 I D A IDA IDA环境编辑程序源代码
程序不可进行的操作:
访问网络、使用 f o r k fork fork或其他线程/进程生成函数、打开或创建题目规定以外的文件、运行其他程序
如果提交的答案程序中包含 N O I NOI NOI考试明确禁止使用的代码
文件名错误(只能是小写)、文件目录名错误、文件保存路径错误
使用每场考试前工作人员下发的账户及密码
测试点的时间的限制含义:用户时间
计算机硬件故障、操作系统死机
可携带:笔,手表
不可携带:书籍,纸,U盘,手机
场地提供:草稿纸,饮用水,食品
CSP初赛真题
CSP初赛模拟