初赛
对于初赛,虽然其内容往往很简单,而且内容很菜,但是如果过不去初赛,那么再牛的人都只是徒劳,今天,让我们一起整理一下初赛的内容吧! 另外,POLICE大人保佑我顺顺溜溜的过初赛
计算机
1.1946年,美国诞生了世界第一台计算机ENIAC,占地170平方米 ,质量30吨 2.电子元件的排序,电子管,晶体管,集成电路,超大规模集成电路 3.计算机的基本结构是冯诺依曼提出的 4.计算机可以分为巨型机、大型机、中型机、小型机、微型机、工作站 5.计算机存储器是用字长编制的 6.B KB MB GB TB PB他们之间的进率是1024 7.存储有,CPU-内存储器-外存储器三个之间互相构成 8.内存储器分为RAM、ROM、Cache三种,分别为随机存储、只读存储、高速缓冲 9.外存储器就是优盘、软盘、硬盘等,是用来辅助的,可有 可无 10.CPU的处理速度用主时钟频率表示 11.对于不同的语言,机器语言-汇编语言-高级语言 12.计算机中的字符编码采用ASCLL编码 13.国际的GB2312-80采集一级汉字按拼音,二级汉字按偏旁部首,是按16×16个点表示 14.原码就是二进制;反码就是正数是本身,负数就是除了第一位及那个其他位取反;补码就是正数是本身反码加1 15.局域网LAN,城域网MAN,广域网WAN
进制
十进制转任何进制n(二八十六)整数不断短除n,然后余数倒序输出;小数的话不断地乘以n,整数部分正序输出,两个都是直至到1为止 任何进制n转十进制(二八十六)用每一位乘上n的次方,从右往左0依次开始,最后相加
算法
算法是对问题求解一种描述方法,一指令优先序列,算法是解决问题的操作步骤 算法有很多性质,但是这些性质在初赛中往往没有什么用,了解就行了 1.有穷性:算法在一定的时间限制下完成 2.确定性:每个算法都有固定的用法,不允许有歧义 3.输入输出:输入可以忽略,没有输出的算法是没有意义的 4.可行性:算法必须遵循特定限制下都得解题规则
复杂度
复杂度,确定一个算法优劣情况,影响算法的效率,一个算法的评价通常用时间复杂度(TC)和空间复杂度(SC)来分析 时间复杂度,是指算法的计算工作量和基本的运算次数常用O表示 空间复杂度,是指一个算法的所需要的内存空间,空间分为:输入数据所占的存储空间,程序本身的空间,算法执行所需的存储空间
基础算法
1.高精度,分为加减乘除四个基本运算,有的时候还会冒出来取余等运算,其实基本的思路就是利用字符串数组来解决,输入的时候按照字符串输入,然后按位存到数组里面,再每一位每一位的操作即可 2.枚举,就是将有限可能的集合将元素一一列举出来,再根据限制条件筛选出正解 3.排序 插入、冒泡、选择O(n2) 其他线性排序O(nlogn) 线性排序O(n) 插入、冒泡、归并以及线性排序都是稳定的 选择、希尔、快速、堆是不稳定的 线性、归并空间为O(n),其他的排序空间为O(1) 当n较小的时候用选择排序,空间允许用桶,n较大用快速或者归并 4.递推,是一种重要的数学方法,也是数值计算的一个重要算法,递推算法的思路就是:在求解问题中,已知条件和所求问题之间存在某种关系,然后根据这关系,逐步求解问题 5.递归,函数或者过程自己调用自己 6.搜索,很多问题,根据某种关系的计算法则来求解,回溯,是用来控制搜索算法的,它的思想就是:为了求问题的解,先选择某种可能情况进行探索,一旦发现选择是错误的,及时的退回去 重新选择,如此反反复复,直至找到答案 7.贪心,在问题求解的时候,总是做出眼前 看来最好的选择,不从整体考虑,只考虑局部 它是一种思想,没有固定的框架,是一种策略 8.分治,分而治之,将大规模转化成小规模的问题,通过小的问题来推导出整体问题,如果分解的时候分成两个,就叫做二分 9.广搜,用限制规则依次搜索每一层,直至找到答案
逻辑运算
逻辑运算计算逻辑,有三个种类 1.非!将结果取反 2.与&,两边都是真结果才为真 3.或|,两边有一个是真结果才为真 4.异或^,相同为0不同为1 在二进制的位运算中,缺位用0代表,垂直对应两位 当然在逻辑中,不会有二进制的01操作,只会存在真与假的操作 在一些逻辑中,?表示&&,v表示||,┐表示! 在集合中又会有并运算交运算和差运算 这些集合的运算在高中数学这篇文章中提到了,这里就不在提了
栈
栈是一个只能在某一端插入和删除的特殊线性表 先进来的压在底下,然后一件一件往上堆起来,堆起来和取出来这两个操作都在顶部进行,底部不动 进栈称作PUSH,退栈称作POP,栈顶叫做TOP 进栈出栈只需要将top指针加一减一 栈又分为上溢和下溢两个错误,下溢的意思就是下面溢出,是指当栈为空的时候还要出栈,那么就出错误了;上溢的意思就是上面溢出,是指栈已经满了,还要入栈,也是一种错误 在日后的做题中,上溢是一种致命的错误 栈在历年的初赛中经常出现,要牢实掌握
队列
队列是在一端进行插入,另一端进行删除的特殊线性表,就像排队买东西一样,越往前的人越早离开队伍,后来的人越晚离开队伍 我们经常把队列删除操作叫做出队,插入操作叫做入队 然后用head表示队头的指针,用tail表示队尾的指针,让元素出队则需要将head++,让元素入队则需要将tail– 对于循环队列,则是为了省空间时间开创了一个首尾相接的环状的东西 计算元素个数的公式(tail-head+n)%n
树
前面我们了解的东西叫做线性数据结构 ,他们的每一个元素都是前驱和后继的(除了第一个元素和最后一个元素),也就是像一条线一样,线性数据结构的应用很广泛,但是有的时候用线性并不能表示,比如家谱和机构表,都是非线性的数据结构,树就是一种非线性的数据结构 树是由n个元素 组成的有限集合,而且有一个特定的节点,除了根节点之外,其他的根节点,其他的节点 能分成m个互不相交的有限集合,每一个集合又是一棵树 一个节点的儿子的个数叫做这个点的度,度为0的节点叫做叶节点,度不为0的节点叫做分支节点;在树中各个节点的最大值叫做树的度 看具体题目的要求,定义的根节点的层次,然后子节点的层次依次增一,一棵树的最深层次叫做深度 森林是指互不相交的树的集合 对于树的遍历,则有前序遍历,中序遍历,后序遍历三种情况,这三个的区别在于根的位置 关于树,有一大堆公式,必须灵活掌握这些公式 二叉树的各种公式(重点重点重点): 1.二叉树的第i层有2i-1个节点 2.深度为k的二叉树至多有2k-1 3.如果叶子节点有n0个,度为2的节点数为n2,那么满足n0=n2+1 4.n=n1+2n2+1(n1表示1度节点的个数,依次类推) 5.n=2n0-1 6.n个节点的二叉树的深度为floor(log2,n)+1,floor表示向下取整 7.一个节点编号为i,他的左儿子为2i,右儿子为2i+1
表达式有三个种类,根据中缀转成前缀后缀,则需要把中缀转化成二叉树,前缀后缀转中缀则需要从左从右用栈来扫描即可
图
图是一种复杂的非线性结构,在多个领域都有用处,非常的厉害 图G通常由两个集合组成,一个点集V,一个边集E 点用边连起来的叫做图,它是一种数据结构 图的一些概念在我的图论这篇文章有详细的介绍,这里只做一些补充吧 回路:起点终点相同的路径叫做回路,又名环 完全图:一个n阶的完全无向图含有n*(n-1)/2条边,有向图含有n*(n-1)条边 图的存储方法在我的另外一篇博客中介绍的详细,分为邻接矩阵和邻接表两种方法 对于一笔画两个问题非常的难理解,如果一个图存在一笔画的路径叫做欧拉路,如果是一条回路叫做欧拉回路 1.欧拉路的条件:图连通并且只有2个奇点 2.欧拉回路的条件:图连通并且有0奇点
|