史上最全的CSP-J/S 第一轮知识点

时间:2019-09-20 21:17:04   收藏:0   阅读:227

CSP-J/S 第一轮知识点选讲

\(NOIP\)(全国青少年信息学奥林匹克竞赛)于2019年取消。取而代之的是由\(CCF\)推出的非专业级软件能力认证,也就是现在的\(CSP-J/S\)。作为一名于2019年1月入\(OI\)的蒟蒻\(OIer\),没能参加\(NOIP\)是我一生的遗憾。但在遗憾之余,我不得不备战\(CSP\)的认证。而\(CSP\)非专业级认证的第一轮(也就是\(NOIP\)初赛)常常使某些大神\(OIer\)(就是对基础知识不太了解)无缘复赛...所以今天来盘一下初赛知识点,顺带着自己也学习一下......


信息学史及基本知识

一、信息学及计算机史

二、关于编程

三、关于计算机

先上张大图:

技术分享图片

CPU(中央处理器)=运算器+控制器+寄存器

存储器=内存储器+外存储器

BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

随机存储器RAM的“随机”指“随时访问”

所以,我们记下来以下知识点:

断电后可以保存数据:硬盘,ROM

断电后不可以保存数据:显存(显卡内存),RAM,CPU

计算机的存储单位有以下几种:

\(TB/GB/MB/KB/B\)

他们之间的进位关系为1024(这应该是常识,没打过比赛还没玩过手机么?)

特殊地,\(1B=8(bit)\),这里的\(bit\)是二进制下的一位内存。


进制及进制转化

十进制转任意进制

将十进制转换成\(N\)进制,只需把十进制数每次除\(N\)求余数,然后把余数逆序写出来。

看不懂就看图:
技术分享图片

这是二进制的图,其他进制就类比推一下就可以了。如果这个看不懂的话就不要参加初赛了,50块钱买点啥不好...

任意进制转十进制

简单说就是:按位转,第\(i\)位的数字乘以要转换的进制的\(n-1\)次幂即可。

还是上图:

技术分享图片

任意进制互相转化

这里考虑用十进制做中转,先把\(A\)进制转十进制,再把十进制转\(B\)进制。

关于小数的进制转换

十进制转任意进制的小数不进行除法运算,而进行乘法运算后取整,取整后从前向后排列。

任意进制转十进制的小数只需要乘上负指数,最后算出来即可。

各进制的字母表达

\(H(Hexadecimal)\)——16进制

\(D(Decimal)\)——10进制

\(O(Octonary)\)——8进制

\(B(Binary)\)——2进制

二进制的相关知识

二进制是计算机进行计算所使用的工具,自然也是非常常考的要点。二进制的相关知识有许多,甚至算法中的位运算也是二进制的相关内容,但为了过第一轮初赛,我们只介绍一些理论知识。关于位运算的相关知识请有兴趣的同学自己学习。

顾名思义,原码就是十进制数直接转换成二进制之后直接形成的二进制编码。

正数的补码是本身,负数的补码是其反码加一

顾名思义:正数的反码是本身,负数的反码是其除符号位之外的所有位按位取反的结果。


逻辑运算

逻辑运算

逻辑运算一共有三种,每种都有两种写法:

逻辑非:!或 ┐

逻辑与:&& 或 ∧

逻辑或:|| 或 ∨

逻辑运算的优先级

\(>\)\(>\)

位运算+逻辑运算的优先级

逻辑非(!,┐)=按位反(~)>位移运算(<<,>>)>不等号(>=,<=)>等号(==,!=)>按位与(&)>按位异或(^)>按位或(|)>逻辑与(&&,∧)>逻辑或(||,∨)


图论理论知识

基本概念

\[ \frac{n\times (n-1)}{2} \]

二叉树的遍历

我们用一张图来理解一下这几种遍历方式。
技术分享图片

这张图的先序遍历:1245367

中序遍历:4251637

后序遍历:4526731

特殊二叉树及其性质

图例如下:

技术分享图片

图例如下:

技术分享图片

1、对于一棵满二叉树来讲,它的叶子节点为\(n\),则节点总数为\(2\times n-1\)。此结论可逆。

2、对于一棵满二叉树来讲,它的层数(深度)为\(k\),则它的节点总数为\(2^k-1\)。此结论可逆。


简单数据结构基本理论

1、栈

想象一个桶,你从上面往里扔砖,然后你想把某一块砖拿出来,你需要先拿出来你后扔进去的砖。这就是栈。栈的基本原则是:后进先出

来一发图示?

技术分享图片

2、队列

想象你在排队买票,这个队伍中的人都非常有素质,都自觉排队而且不会提前离开队伍。这样就只能从队首买完票再离开,从队尾进入队伍。队列的基本原则是:先进先出。

再来一发图示:

技术分享图片

3、链表

链表分两种:单向链表和双向链表。关于链表,我有一篇专门讲解的博客。有兴趣的读者请戳:

链表详解


时空复杂度的计算

公式:\(n\)为元素个数,\(M\)为最终答案(以\(MB\)为单位)
\[ M=\frac{4n}{1024\times 1024} \]
PS:一般来讲,比赛中所给的\(256MB\)内存可以开\(6\times 10^7\)\(int\)类型的变量。另外,大数组必须开全局变量。如果扔在主函数里极容易爆栈。


数学、逻辑学及运筹学知识

浅谈排列组合


题目类型整理

题型 知识点类型 题目数量
单选 信息学史&基本知识 8-10
单选 C++语法知识点 2-3
单选 数据结构&算法 3-4
单选 数学&逻辑学&运筹学 3-4
单选 比赛相关知识 1-2
问题求解 数学 1
问题求解 数据结构 1
模拟程序运行 C++语法&算法 4
完善程序 C++语法&算法 2

原文:https://www.cnblogs.com/fusiwei/p/11559283.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!