- 博客(149)
- 收藏
- 关注
原创 CSP初赛知识点讲解(十二)
在普及组比赛中,因为图中点和边的数量较少, 一般采用邻接矩阵的办法来存储树和图,mp[i][j] 表示i点和j点是否有边相连,初始时mp数组为空, 当有一条i->j的边时,此时mp[i][j]=1,如果是无 向图,j点同样也可以到达i点,还需要mp[j][i]=1。为了清楚的表示出i点到 底和哪些点相连,我们可以用mp[i][j]表示点i 是否和点j相连,0表示不相连,1表示相连。有向图:边有方向的图,比如边a–>b,只能由a到b,不 能由b到a。结点的入度:在有向图中,以这个结点为终点的有向边 的数目。
2024-09-04 19:49:09 236
原创 CSP初赛知识点讲解(十一)
假设此时第k个数已经入栈了,那么还剩下(n-k)个数, 那么剩下(n-k)个数的入出栈方案数很简单就是h[n-k],那么 已经入栈的k个数的方案数呢?肯定不是,h[k]表示的 是前k个数出入栈种树,但是这里已经入栈的k个元素,有没 有必要先出栈,再让k+1这个元素进来,所以,明显有问题。那么我们思考一下,最开始只有一个结点,就是叶子结点,然后再添加一个结点,此时x=y,那么为了满足x=y+1,又的让叶子结点+1。(1)给出一个n,要求一个长度为2n的01序列,使得序列的任意前缀中的1的个数不少于0的个数。
2024-09-04 15:49:34 631
原创 CSP初赛易错题集锦——计算机拔高篇
地址总线的位数决定了CPU可直接寻址的内存空间大小,例如地址总线为16位,其最大的可寻址空间为64KB。【NOIP2001普及组】 CPU处理数据的基本单位是字,一个字的字长(易错:地址总线的位数与可寻址内存空间的关系是2的地址总线位数次方。【NOIP2003普及组】下列关于程序语言的叙述,不正确的是(【NOIP2005普及组】 Intel的首颗16位处理器是(【NOIP2004普及组】下列哪个不是数据库软件的名称(【NOIP1999】计算机的软件系统通常分为(【NOIP2001普及组】解释程序的功能是(
2024-09-03 16:56:13 300
原创 CSP初赛易错知识集锦——计算机基础篇
易错:不是喷墨打印机,激光打印机的工作方式是利用静电吸附墨粉后转移到纸张上。这种技术涉及使用带电的墨粉颗粒在感光鼓上形成图像,然后通过静电作用将墨粉吸附到纸张上,最终通过热固定技术将墨粉永久固定在纸张上,形成最终的印刷品。易错:BIOS是一组固化在计算机主板上一个ROM芯片上的程序,用于提供基本的输入输出功能,确保计算机能够正常启动并运行。易错:RAM内的信息不是有生产厂家预先写入的,ROM中的信息才是生产厂家预先写入的。易错:不是晶体管,第一台晶体管计算机是在1954年发明的。
2024-08-29 21:00:07 221
原创 浅说树的基本性质(下)
树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。我们求解树的重心也非常简单,我们还是以任意点的起点,找到一这个点为根的每个点的子树的数量,然后从中找一个最小值就行了,当然我们这里最好去维护一个每个节点与之有关联的节点的节点数,因为有可能是无根树。
2024-08-29 14:49:11 961
原创 重构贪心算法(一)
贪心是信息学竞赛中一种很重要的解题方法,他不仅仅是一些题目的正确解法,还可能是一道题目中的部分算法,甚至还可以以错误的算法“骗得”更多的分数。在信息学竞赛中,很多题目往往要求最优解,这就和我们贪心的思维不谋而合,虽然很多时候贪心并不是正解,或者贪心的效率比较低,但是在我们不会做这道题的时候却能带给我们正确的思路。虽然他只是一种基本的算法,但是他的作用不逊于很多高级算法。那么贪心究竟是什么呢?并没有标准答案,在每个人心中,贪心的定义是不同的,思想不同,算法也不同。
2024-08-28 20:52:37 1273
原创 浅说树的基本性质(中)
在学会如何写代码之前,我们要先了解一下树的直径的性质。让我们来证明一下上面的两个结论。命题1:直径的两端点一定是两个叶子节点我们这里采用反证法,如果直径的两个端点不是叶子结点,那么必然这个节点一定会有孩子节点,那么这样的路程又可以增加一节,所以原直径并不是这棵树的直径,矛盾。所以直径的两端点一定是叶子结点命题2:距离任意点最远的点一定是直径的一个端点我们这里同样采用反证法,如果距离任意点最远的点不是直径的一个端点,那么这里就有两种情况:我们设当前直径为xy,现有任意点O和另一个点M。
2024-08-23 20:46:50 1340
原创 浅说树及其基本性质(上)
在了解树的基本性质之前,我们要先知道什么是树。首先我们知道树分为和,有根树指的是有一个固定的根,无根树指的是没有固定的根,任何一个节点都可以为树,我们一般情况下,只分析有根树树是nn1个结点的有限集。当时这棵树没有节点时,称为空树。在任意一棵树非空树中应满足:(1) 有且仅有一个特定的称为根root的结点;(2) 当n1时,其余结点可分为个互不相交的有限集,其中每一个集合本身又是一颗树,并且称为根的子树(SubTree)
2024-08-23 20:12:21 927
原创 算法全面剖析
冒泡排序(英语:Bubble Sort)又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端选择排序( Selection sort)是一种简单直观的排序算法。一般是初学者接触的第一个排序算法,简称为选排。它的工作原理是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在。
2024-08-21 15:16:46 1071
原创 NOI大纲——提高组——最小生成树
一个图中可能存在多条相连的边,我们**一定可以从一个图中挑出一些边生成一棵树。**这仅仅是生成一棵树,还未满足最小,
2024-08-20 17:38:06 229
原创 详解并查集
并查集是一种简单但非常高效的数据结构,特别适用于动态连通性问题。通过路径压缩和按秩合并这两种优化技巧,并查集能够以接近常数时间处理合并和查找操作,这在图论算法中具有广泛的应用。
2024-08-20 17:36:51 959
原创 NOI大纲——提高组——并查集
并查集是一种简单但非常高效的数据结构,特别适用于动态连通性问题。通过路径压缩和按秩合并这两种优化技巧,并查集能够以接近常数时间处理合并和查找操作,这在图论算法中具有广泛的应用。
2024-08-20 17:36:16 417
原创 洪水填充算法(Flood Fill)和广度优先搜索算法(Breadth-First Search, BFS)的共同点与不同点
洪水填充算法(Flood Fill)定义:洪水填充是一种用于确定图像中与给定起点像素相连的区域的算法。它通常用于图像处理中的区域填充,比如在绘图软件中填充一个封闭区域。目的:主要用于图像处理、区域填充、分区识别等场景。广度优先搜索(BFS)定义:BFS是一种图搜索算法,用于从一个给定的起始节点开始,按层次遍历图中所有节点。它使用队列结构来逐层扩展搜索范围。目的:主要用于图论中查找最短路径、连通性分析、图遍历等场景。
2024-08-15 16:46:15 428
原创 CSP初赛知识点讲解(十)
a[i]-a[i-1]=公差d已知第i项为a[i],公差为d,求第k项:a[k]=a[i]+(k−i)×d。a[k]=a[i]+(k-i)\times d。a[k]=a[i]+(k−i)×d。已知首项a[1],公差d,求和a[n]=a[1]+(n−1)×da[n]=a[1]+(n-1)\times da[n]=a[1]+(n−1)×dS[n]=(a[1]+a[n])×n÷2S[n]=(a[1]+a[n])\times n\div2S[n]=(a[1]+a[n])×n÷2a[i]=a[i−1]×qa[i]=a
2024-08-13 22:32:26 946
原创 CSP初赛知识点讲解(九)
的排序,有的效率是比较稳定的,即无论什 么情况都趋近于NlogN,比如归并排序,堆排,也有一 些排序时间复杂度是不稳定的,即在最坏情况下会趋近于。排序也分为稳定排序和不稳定排序,这个稳定与否不是 指排序效率的,而是指排序前后两个相等的数相对位置 一定不发生改变,则算法稳定。:不稳定排序,很容易想到,比如5 2 2 7 7, 第一个2和第二个7交换,第二个2和第一个7交换,位置变了。希尔排序:虽然是插入排序的升级版,但是他是不稳定的排序。:稳定排序,很明显,因为为递归,是一段一段的排,一定是稳定的。
2024-08-13 21:11:29 855
原创 CSP初赛知识点讲解(八)
那么就分情况讨论: 3条边:共有C(6,3)种,但是三条边构成三角形这种是 错误的,这种情况有4种 4条边:共有C(6,4)种,都满足条件 5条边:共C(6,5)种,都满足条件 6条边:共C(6,6)种,都满足条件 所以共20-4+15+6+1=38种。7人排队,甲在乙前面的排法有几种: 先不考虑限制条件,有A(7,7)种可能,而甲乙之间的排法 有A(2,2)种,甲在乙前面的排法只有一种复合条件,所以直 接用A(7,7)/A(2,2)就可以了。比如7 个人,第一排3人,第二排4人,问有多少种不同的排法。
2024-08-10 18:42:15 632
原创 了解碳中和
碳循环是地球上维持生命和气候稳定的重要过程。人类活动,尤其是工业化进程,显著影响了这一循环,导致大气中二氧化碳含量增加,进而引发全球变暖和气候变化。因此,采取措施减少二氧化碳排放,促进碳的有效循环,是应对气候变化的关键。二氧化碳(CO₂)是地球上重要的气体之一,广泛存在于大气中,并参与多种化学反应和生物过程。以下是二氧化碳的常见性质、转化方式,以及从排放到吸收涉及的主要反应。
2024-08-10 13:54:45 670
原创 CSP初赛知识点讲解(七)
IPV4是32位二进制数,4个十进制数,每个十进制数的范围是0-255(2^8-1) 每个数之间用小数点隔开。题解:IP地址为四个十进制数组成,每一个数的范围是0~255,300超过了这个范围。【NOIP2002普及组】IP v4地址是由()位二进制数码表示的。【NOIP2001提高组】TCP/IP协议共有()层协议。网络分为个域网,局域网,城域网,广域网。注:因作者能力有限,上述内容转载自。下列IP地址中错误的是()。的协议方式,从上到下分为。题解:基础知识的考查。题解:基础知识的考查。
2024-08-09 21:14:53 451
原创 CSP初赛知识点讲解(六)
运算表达式有三种,前缀表达式,中缀表达式,后缀表达式,我们常用的是中缀表达式,即符号在数字之间, 运算符有优先级,人肉眼看着很方便,计算也比较方便。如果优先级大于栈顶元素,入栈(乘除的优先级>加减), 如果优先级小于等于栈顶元素,出栈,直到栈顶元素优先级小于 当前字符优先级的时候。如果栈为空或者栈顶元素为左括 号,入栈,否则出栈(因为加减的优先级最低,无论栈顶是什么 运算符,优先级都大于等于他,都要出栈),当前字符入栈。当前元素:+,从栈中弹出9和6,计算9+6=15,将结果15压入栈中。
2024-08-09 21:03:13 740
原创 CSP初赛知识点讲解(五)
题解:简单的说,5个数的全排列,共有5*4*3*2*1=120种,而每次比较能 得到或大或小两种情况,n次比较可得到2^n种情况,所以要想区分出这120种 情况,至少要n=7,即有2^7=128>=120。【NOIP2001】在顺序表(2,5,7,10,14,15,18,23,35,41,52)中, 用二分法查找12,所需的关键码比较的次数为( )。排序的稳定性是指原序列中相同元素的相对位置与排好序的新序列中相同元素的相对位置是否相同, 若相同,则为稳定排序,否则为不稳定排序。
2024-08-08 20:40:25 793
原创 CSP初赛知识点讲解(三)
至于为什么有原码,反码,补码,仅作了解,反正也不考,大概就是计算机只能做 加法,并且可以直接算上符号位做加法,所以原码有 问题,就有了反码,反码0有两种形式,就有了补码。A. [x]补=01010011 B. [x]补=10001001 C. [x]补=11111111 D. [x]补=11000000B。机器数:一个数在计算机中的二进制表示形式,叫做这个数的机器数,机器数是带符号的,在计算机用一个数的 最高位存放符号,补码:正数的补码是其。
2024-08-07 21:58:41 752
原创 CSP初赛知识点讲解(四)
二进制运算符主要包括: 与运算(&)、或运算(|)、非运算(~)、异或运算(^)、左移运算符()以及复 合运算符(a&=b表示a=a&b,其余的类似)注意闰年366天,平年365天,如果不是整百,不但要能整除4,还要整除400,非整百年只要 能整除4就可以了。分辨率为1600$\times$900,16位色的位图,存储图像信息所 需要的空间为( )。二进制相同位上,都是1则为1, 否则为0。二进制相同位上,都是0则为0, 否则为1。二进制相同位上,相同为0,不同为1,
2024-08-07 21:58:19 683 1
原创 CSP初赛知识点讲解(二)
十进制:逢十进一(包含数字0~9)365103×1026×1015×100365103×1026×1015×100二进制:逢二进一(包含数字0~1)101121×230×221×211×20101121×230×221×211×20。
2024-08-06 21:28:58 1374
原创 CSP初赛知识点讲解(一)
通过这种方式构造的树,离根节点越近的边是被访问频率越高的 点,离根节点远的点是访问频率低的点,这也是电脑上的压缩软 件的压缩原理。题解:历史上的第一个支持面向对象的计算机语言是Simula,他是在20世纪60年代末由挪威的Ole-Johan Dahl和Kristen Nygaard开发的,而C++是在20世纪80年代初由Bjarne Stroustrup在贝尔实验室开发的。比如C++,C#,JAVA,python,VB是面向对象语言,面向过程的语言比较少,常见的就是C语言,Pascal。
2024-08-05 20:49:47 1442
原创 图论算法合集
Dijkstra算法是一种用于计算单源最短路径的算法,即从一个指定的起始节点到图中所有其他节点的最短路径。该算法适用于有向图和无向图,但要求边的权重为非负数。Dijkstra算法利用贪心策略,逐步扩展最短路径树。Floyd-Warshall算法适用于计算所有节点对之间的最短路径,时间复杂度为O(n^3),适用于稠密图。Dijkstra算法用于计算单源最短路径,时间复杂度为O((V+E) log V),适用于边权非负的稀疏图。通过实际代码示例和详尽的注释,我们理解了两种算法的核心思想和实现细节。
2024-07-27 08:30:00 420
原创 CSP-J模拟赛day4——解析+答案
显然我们可以发现,在二进制下2n这个结果在二进制下就是1后面n个0所以如果仅有2a2b这个运算,那么在二进制下这个运算结果只会包含两个1所以会影响1个数的就是这个−2c,手动模拟后就会发现最后答案为b−c1这里要注意数据范围,记得开longlong。
2024-07-26 17:22:57 921
原创 NOI大纲——普及组——素数筛法
时间复杂度 O(n2)O(n^2)O(n2)2.试除法的优化时间复杂度O(n×n)O(n\times \sqrt{n})O(n×n)埃拉托色尼筛法(Eratosthenes Sieve)埃拉托色尼筛法是一种古老且高效的算法,用于找出某个范围内所有的素数。它的工作原理基于反复标记出合数(即非素数)。其核心思想如下:下面是埃拉托色尼筛法的详细步骤及代码实现:。因为如果i的值超过n\sqrt{n}n,i的倍数中最小的一个已经大于n,因此没有必要继续标记。代码实现示例假设我们要找出30以内的
2024-07-26 17:05:23 403
原创 CSP-J模拟赛day2——解析+答案
记录能到达的最高点和最低点,如果最高点小于最低点就不行,然后从后往前进行模拟。将气球和条幅都从小到大排序就行,然后一个一个的匹配。大于1的正数都要取,负数要选的话就要一次性选两个。通过记录前缀来判断,并且枚举截断点。
2024-07-24 16:35:45 721
原创 CSP-J模拟赛day1——解析+答案
的时间复杂度,显然过不了,所以我们这里采用桶排,这样的时间复杂度就是。,也就是在二进制的情况下只有一个1,所以我们直接模拟就行了。因为有过牌这一方法,所以这道题就直接变成了01背包问题。很容易想到贪心的思路,但是无论是快排还是插排都需要。由题可得,每次只加一个。送分题,暴力枚举即可。
2024-07-23 21:48:21 1074
原创 [CQOI2007] 涂色
假设你有一条长度为5的木板,初始时没有涂过任何颜色。你希望把它的5个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为5RGBGR。每次你可以把一段连续的木板涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色。例如第一次把木板涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标。用尽量少的涂色次数达到目标。
2024-07-17 17:43:20 784
原创 1571:【例 3】凸多边形的划分——典型的区间dp问题,值得一看
给定一个具有N个顶点的凸多边形,将顶点从1至N标号,每个顶点的权值都是一个正整数。将这个凸多边形划分成N−2个互不相交的三角形,试求这些三角形顶点的权值乘积和至少为多少。
2024-07-17 17:34:40 801
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人