zoukankan      html  css  js  c++  java
  • CSP初赛复习

    呵呵,来复习一下CSP初赛。

    选择题知识点大致范围:
    计算机基本常识:
    IT文化、微机原理、信息安全、基本应用
    与奥赛活动有关的知识
    程序语言及算法基础
    相关计算
    数据结构(串、栈、队、树、图)
    离散数学:排列组合、数理逻辑

    程序语言及算法基础

    了解算法的五大特征:
    有穷性、确定性、可行性、0或多个输入、有一个或多个输出
    要求掌握的排序有:
    选择、冒泡、插入、归并、快速、堆、排序二叉树
    理解每种排序的算法思想
    了解每种排序的时间复杂度及其稳定性

    排序稳定性

    如果(i<j,a[i]=a[j]),在排序后能保证仍然(a[i])(a[j])前的,即为稳定。

    不稳定排序

    堆排序、快速排序、希尔排序、直接选择排序

    稳定排序

    基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序

    二叉树

    树:普通二叉树、满二叉树、完全二叉树
    二叉树的特点:
    1、第i层的结点最多为2i-1(i>=1)个结点,深度为K(K>=1)的二叉树最多有2k-1个结点。
    2、在二叉树中,如果其叶子结点数为n0,则其度为2的结点数为n2=n0-1。
    完全二叉树的特点:
    1、树叶只可能在层次最大的两层上出现。
    2、对任一结点,左子树的深度或者比右子树的深度多1,或者与右子树深度相等。
    3、具有n个结点的完全二叉树的深度为K=[log2n] +1

    二叉树的遍历

    前序遍历(DLR):根,左子树,右子树
    中序遍历(LDR):左子树,根,右子树
    后序遍历(LRD):左子树,右子树,根
    已知前序遍历(或后序遍历)和中序遍历,就能唯一确定其他一种遍历
    已知前序遍历和后序遍历,不能唯一确定中序遍历

    完全二叉树

    若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
    就是说除第h层外为满二叉树,且第h层为从左到右的。

    为什么对于完全二叉树,叶子节点只可能在层次最大的两层上出现?

    满二叉树的叶子节点都在层次最大的一层,从满二叉树的最后一个叶子节点开始,依次向前(向左)删除若干个叶子节点,得到一棵完全二叉树,被删叶子节点的上一层(层次第二大的)节点因失去叶子,成为新的叶子节点。如此,叶子节点出现在最大层和次大层。
    只有当最大层叶子节点删除完,才可以删除次大层叶子节点,此时次大层变成新的最大层,叶子节点仍然只可能出现在层次最大的两层上。

    进制转换

    嗯嗯,我来口胡一下这个东东。
    其实看看这个也不错

    其他进制转十进制

    其他进制转十进制的也十分简单,我们设个位为第0位,往前一次递增,往后则为负数。
    那么十进制结果就是各个位上的数乘以进制的位数次方。
    (1011.01)2=(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10 
    =(8+0+2+1+0+0.25)10 =(11.25)10

    十进制转二进制

    十进制整数转二进制数:“除以2取余,逆序排列”(短除反取余法)
    十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)

    八进制转二进制

    二进制数转换成八进制数:从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。
    八进制数转换成二进制数:把每一个八进制数转换成3位的二进制数,就得到一个二进制数。
    例:将八进制的37.416转换成二进制数: 
    3     7   . 4    1     6
    011  111  .100  001  110 
    即:(37.416)8 =(11111.10000111)2 
    例:将二进制的10110.0011 转换成八进制:
    010  110 . 001 100
    2    6  .  1    4  
    即:(10110.011)2 = (26.14)8

    相关内存单位转换

    位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。[英文缩写:b(固定小写)]

    字节byte:8个二进制位为一个字节(B),最常用的单位。

    1 Byte(B) = 8 bit

    1 Kilo Byte(KB) = 1024B

    1 Mega Byte(MB) = 1024 KB

    1 Giga Byte (GB)= 1024 MB

    1 Tera Byte(TB)= 1024 GB

    强连通图

    强连通图(Strongly Connected Graph)是指在有向图G中,如果对于每一对vi、vj,vi≠vj,从vi到vj和从vj到vi都存在路径,则称G是强连通图。
    有向图中的极大强连通子图称做有向图的强连通分量。

    定理:一个有向图是强连通的,当且仅当G中有一个回路,它至少包含每个节点一次。

    在计算机中带符号数的表示法

    原码:

    在用二进制原码表示的数中,符号位为0表示正数,符号位为1表示负数,其余各位表示数值部分。
    如:10000010,00000010

    反码:

    反码的定义如下:
    ⑴对于正数,它的反码表示与原码相同。即[x]反=[x]原
    ⑵对于负数,则除符号位仍为“1”外,其余各位“1”换成”0”,”0”换成1”,即得到反码[X]反。例如[-1101001] 反=10010110。

    ⑶对于0,它的反码有两种表示:[+0] 反=00…0 [-0] 反=11…1

    补码:

    正数的补码就是该正数本身。
    [01100100]补 =01000100
    对于负数:两头的1不变,中间取反。
    [10100100]补 =11011100
    [+0]补=[-0]补=00…0。

    错题总结:

    1、快速排序和归并排序都有运用分治思想。

    2、要审清题意,是问“正确”还是“不正确”,“能”还是“不能”。

    3、暴力一定不要有错,最好验算一下。

    4、要认真看清楚共做几个任务,每两队之间比几场赛。

    5、阅读程序写结果的输出要注意输出的标点符号。

    6、完善程序要先认真理解程序含义。

    7、NOIP竞赛从2022年开始将不支持Pascal。

    8、补码 = 反码 + 1,且第一位表示符号,1为负,0为正。

    9、闰年是%4=0且如果为世纪年的话要%400=0。

    10、
    ∧:称为合取,就是逻辑与,例如:P∧Q 当且仅当P与Q同时为真(T)时,结果为真,其余全为假(F)
    ∨:称为析取,就是逻辑或,例如: P∨Q,当且仅当P与Q同时为F时,结果为假,其余全为真。
    ┐:为逻辑非

    转载需注明出处。
  • 相关阅读:
    Excel 如何在程序运行期间提示信息“正在运行中。。。请稍候 38云淡淡
    EXT学习笔记第一课
    java学习日志1
    C语言基础知识
    js所学知识点
    javascript 取最大值和最小值!
    html常用标签
    javascript4位随机数(字体都有颜色)
    marginpadding区别及bug
    数独的优化回朔算法(四)
  • 原文地址:https://www.cnblogs.com/jz929/p/11644419.html
Copyright © 2011-2022 走看看