- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 CSP初赛知识精讲--线性数据结构
线性表是指由n个具有相同特性的数据元素组成的有限序列,是最基本、最简单,也是最常用的一种数据结构。一般来讲,表中数据之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其他数据元素都是首尾相接的。根据指针域的不同,链表可分为单向链表和双向链表,单向链表中各节点只记录后继元素的地址,双向链表的节点会记录前驱、后继两个节点的地址。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为。队列(queue)是一种特殊的线性表,只允许在表的头部(
2024-04-26 20:00:00
813
1
原创 CSP初赛知识精讲--概率
小明要去南美洲旅游,一共乘坐三趟航班才能达到目的地,其中第1个航班的准点概率是0.9,第2个航班的准点概率是0.8,第3个航班的准点概率是0.9.如果存在第i个(i=1,2)航班晚点,第i+1个航班准点,则小明将赶不上第i+1个航班,旅行失败;举例说明:某城市有10万个家庭,没有孩子的家庭有1000个,有一个孩子的家庭有9万个,有两个孩子的家庭有6000个,有3个孩子的家庭有3000个。取0的概率为0.01,取1的概率为0.9,取2的概率为0.06,取3的概率为0.03。该常数即为事件A出现的概率,常用。
2024-04-26 09:21:07
1001
原创 CSP初赛知识精讲--容斥原理
在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥除去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。某班有学生45人,每人在暑假里都参加体育训练队,其中参加足球队的有25人,参加排球队的有22人,参加游泳队的有24人,足球、排球都参加的有12人,足球、游泳都参加的有9人,排球、游泳都参加的有8人,问:三项都参加的有多少人?
2024-04-25 18:30:00
1068
原创 CSP初赛知识精讲--鸽巢原理
首先保证不成对地取5只袜子,再取一只(6只)成第一对,再取刚刚成对的颜色的袜子(7只),保证不成对;再取一只成第二对(8只),同理,再取刚刚成对的颜色的袜子(9只),保证不成对;有35个球,红、白、黄各10个,另外有3个蓝色、2个绿色,试问无论如何取,至少取几个小球就能保证有4个同色球。原理2:把多于mn+1(n不为0)个物体放到n个抽屉里,则至少有一个抽屉里有不少于m+1个物体。:先取完蓝色和绿色(5个),再取红、白、黄各3个(14个),最后随便取一个(15),总共15个。
2024-04-25 14:16:15
293
原创 CSP初赛知识精讲--排列组合
从n个不同元素中,任取m(m≤n,均为自然数)个不同的元素按照一定的顺序排成一列,所有排列的个数,称作从n个元素中取出m个元素的排列数。有5副不同颜色的手套(共10只手套,每副手套左右手各一只),一次性从中取6只手套,请问恰好能配成两副手套的不同取法有( )种。:从n个不同元素中,任取m(m≤n)个元素并成一组,所有组合的个数,称作从n个元素中取出m个元素的组合数。种,但是会有重复的情况(A格和B格,B格和A格,是一种情况),所以有。是指从给定个数的元素中仅仅取出指定元素个数的元素,不考虑排序。
2024-04-24 19:00:00
1841
原创 CSP初赛知识精讲--十大排序
十大排序是指将无序序列变为有序序列的十种常见排序算法,分别是:冒泡、选择、插入、快速、归并、希尔、堆、桶、基数、计数。排序前如果有两个数a和b相等,a在b的前面,排序后a仍在b的前面,则该算法稳定;(n表示待排序数据规模,k表示待排序数据范围,对数以2为底)2)非比较类排序:基数排序、计数排序、桶排序。稳定的排序:冒泡、插入、归并、计数、桶、基数。不稳定的排序:快速、堆、选择、希尔。我们这里以从小到大排序为例。
2024-04-24 09:47:35
302
原创 CSP初赛知识精讲--时空复杂度
大O函数的数学定义:存在正常数c和某个规模n0,如果对所有的n ≥ n0,都有f(n) ≤ cT(n),则称f(n)为T(n)的大O函数,写成f(n) = O(T(n))。但是运行时间和语言、机器和机器的状态、数据量的大小都有关系,无法准确衡量算法效率,所以通常用一个相对度量的概念来衡量。:对算法的指令次数进行计算组成T(n),只保留最高阶项,然后去掉最高阶前面的常数。我们一般用大O函数来表示最主要的贡献部分,O(T(n)) = O(n。当n越来越大时,对于T(n)增长的贡献来看,最高阶的n。
2024-04-17 16:02:37
851
原创 CSP初赛知识精讲--浮点数存储
通常尾数为小数,阶码为整数,尾数和阶码均为带符号数。尾数的符号表示数的正负,阶码的符号表示小数点的实际位置。4、尾数为1.0011101,由于所有浮点数的尾数都是1.××××的形式,所以可以将1舍去,只存储后面部分0011101.如果是double类型存储,原理不变,只是指数位变为11位,对应的移码偏移为1023(2。:即补码的符号位取反,如4为二进制数的移码:-1=0111,1=1001。其中N是浮点数自身,M为尾数,R为该浮点数的进制,E为阶码。3、阶码为+4,8为指数位的移码偏移为127(2。
2024-04-14 08:00:00
426
原创 CSP初赛知识精讲--图像存储
常见的有8位、16位、24位、32位、64位色彩,即二进制数的位数,如24位色彩能组合出2。如果把一幅位图看成一个二维数组,则数组中的任一元素(即像素)对应于图像中的一个点,而存储的值对应于该点的颜色或者灰度。:指屏幕上显示的像素的个数,如1024×768的分辨率指屏幕上水平方向有1024个像素点,垂直方向上有768个像素点。:指显示屏相邻两个像素点之间的距离,画质的细腻度就是由点距来决定的,点距越小,图像越细腻。它以一个单一颜色的小方格存在,所有小方格的颜色和位置的组合决定了该图像呈现出来的样子。
2024-04-13 22:09:07
273
原创 CSP初赛知识精讲--字符存储
ASCII码表能够解决英文字母、数字和一些符号的存储问题,但是全世界的语言有很多种,各国也有自己的编码方式,比如中文编码有用GB2312,繁体中文是BIG5,日文是Shift_JIS,韩文是Euc_kr等,这就会导致在多语言的混合文本中,显示会出现乱码。因为剩余的数字和字母都是连续的,比如数字9的编码是57,大写字母Z的编码是90,小写字母z的编码是122,所以我们可以自己算出其他数字或字母的编码。:字符串中任意个连续的字符组成的子序列称为该串的子串,空串和字符串本身也是该字符串的字串。
2024-04-11 22:28:09
392
原创 CSP初赛知识精讲--整数存储
计算机中整数数值的存储并不是简单的将其转为二进制存入内存,因为涉及到正负数、减法运算等问题,所以科学家们设计了一套整数的存储规则–三码。现在-1+1的结果是0001+1110=1111,等于-0。但是,0通常被认为是不具有正负之分的,所以又有了补码。我们会发现一个问题,我们计算-1+1的结果时,得到的是1001+0001=1010,结果是-2。负数的二进制使用反码:符号位不变,其他相反。现在我们的加法运算就完美了,0也没有分正负。负数的补码是用反码+1。
2024-04-11 09:07:32
227
原创 CSP初赛知识精讲--存储单位
存储单位是一种计量单位,指在某一领域以一个特定量或标准作为一个计数点,再以此点的某个倍数去定义另一个点,而这个点的代名词就是计数单位或存储单位。如货车的载重量是吨,也就是说这辆货车能存储货物的单位量词是吨。在实际问题中,若long long都不足以满足需求,则要考虑使用数组来存放高精度数据,再重新定义高精度数据的四则运算。在信奥赛中,对高精度数据的处理也是常考项。一般情况,各类型所占的存储空间和能表示的范围如下表所示。二进制序列用以表示计算机、电子信息数据容量的量纲,基本单位为字节(B),字节单位的。
2024-04-10 09:08:04
359
原创 CSP初赛知识精讲--位运算
运算可以用于简答的加密,比如我的某个密码是123456,但又担心密码被泄露,所以我使用19960706作为秘钥,123456 ^ 19960706= 20017602,我就把20017602记下来,等要使用密码时再计算20017602 ^ 19960706 = 123456,就得到我的密码了。|运算通常用于二进制数特定位上的无条件复制,例如一个数“|1”的结果就是把二进制最末位强行变成1.如果需要把二进制数最末位变成0,对这个数“|1”之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。
2024-04-09 10:13:35
821
原创 CSP初赛知识精讲--进制转换
其他进制数转十进制数同理,十进制数的位权是以10为底的幂,二进制数的位权是以2为底的幂,十六进制数的位权是以16为底的幂。对称的,小数点后的数位则是-1、-2、…用2乘十进制小数,可以得到积,将积的整数部分去除,再用2乘余下的小数部分,如此循环,将每步取出的整数部分顺序排列,得到小数的二进制表示。在数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,我们称其为数的位权, 简称权。同理,由于2的4次方是16,二进制数转为十六进制数时,可四个数一组进行转换(
2024-04-09 10:03:54
635
原创 CSP初赛知识精讲--进制基础
进制也就是进位计数制,是人为定义的带进位的计数方法,可以用有限的数字符号代表所有的数值,可使用的数字符号的数目称为基数或底数,基数位n,即可称n进位制,简称n进制。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,X进制就是逢X进一。由于二进制的基数较小,数据的书写和阅读不方便,为此,在小型机中引入了八进制。更大的进制则从F表示15开始,继续类推到Z,最大可以表示三十六进制。由于二进制的位数太长,不容易记忆,所以十六进制数就出现了。,它们所表示的数值都是一样的。,用十六进制表示为39。
2024-04-08 17:01:21
385
原创 Spike+Python对照表
Spike主要模块和对应的Python指令,主要包含电机、运动、灯、声音、传感器等部分,其余的控制指令和运算符对于有python基础的会比较简单,就不在这里赘述。欢迎大家学习,有不对的地方,欢迎大家指正。
2022-04-23 17:14:32
5986
6
原创 C++学习笔记(一)
C++程序结构#include<iostream>using namespace std;int main() { cout<<"Hello World!"; return 0;}下面我们来理解上面的代这段程序:第一行:C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息。这里用到的头文件iostream使我们可以处理输入和输出的内容。第二行:using namespace std;是告诉编译器使用标准库命名空间,我们可以使用标准库中的对象和变
2021-06-07 19:38:49
278
原创 Unity 飞机大战(三)
(一)陨石运动void Start() { _rigidbody = GetComponent<Rigidbody>(); _rigidbody.velocity = Vector3.back * _Speed; _rigidbody.angularVelocity = Random.insideUnitSphere * _...
2018-12-29 11:03:17
485
原创 Unity 飞机大战(二)
为了避免每次发射的子弹和敌人都要实例化一个新的对象,使用对象池将对象循环利用起来。使用对象池,将使用过的子弹和敌人、陨石反激活,而不是将这些预制体Destroy,当再次需要被实例化的时候,将他们激活就可以循环使用。public class ObjectList{ private List<GameObject> _ObjectList { get; set; } ...
2018-12-29 10:48:05
325
原创 Unity 飞机大战(一)
(一)游戏背景创建两个Quad用来做背景,主相机设置为正交镜头。 给背景添加脚本让其向下运动,使得看上去飞机在往前飞。并且背景能够一直循环。void GroundMove() { transform.position = new Vector3(0, 0, -Mathf.Repeat(Time.time * _Speed, 30f)); }(二...
2018-12-27 20:35:35
1404
原创 Unity 镜头跟随物体移动
用Vector3类型的_offset来记录物体与镜头间的向量 public Transform _Player; private Vector3 _offset; void Start() { _offset = transform.position - _Player.position; } void Update() ...
2018-12-21 11:14:03
4411
原创 Unity 控制物体移动的方法
方法一: 获取键盘输入的值void KeyBoardMove() { if (Input.GetKey(KeyCode.D)) { transform.position += Vector3.right * Time.deltaTime * _Speed; } if (Input.GetKey(K...
2018-12-21 11:03:35
790
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人