抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

前排如果显示有问题,请关闭黑暗模式电脑端滚轴上滑会显示顶端栏,有一个黑暗模式手机端点击右上角,找到黑暗模式 特别鸣谢: 童博扬、王昌翔、张紫涵、石非易 本文内容可能存在错误,欢迎指正习题没有标准答案,提供的题解仅供参考 基本操作数据的输入input()Python程序的输入通过函数input()实现,特别注意,利用input()函数输入的任何数据都是字符串类型所以需要整数数字需要用int()...

算数运算符 加减乘除 + - * / 1234int sum = a + b;int sum = a - b;int sum = a * b;int sum = a / b; // int除法默认向下取整 取模运算 % 1int p = a % b; 理解为做除法得到的余数,例如7 / 2 = 3……1,1 = 7 % 2 赋值运算符 直接赋值 = 1in...

什么是并查集?并查集(Union-Find)是一种数据结构,主要用于处理动态连通性问题。它支持高效的合并(Union)和查询(Find)操作,常用于解决图的连通性、集合的合并等问题。通过并查集,我们可以将两个(或多个)元素合并到一个集合中,并查询两个元素是否同属一个集合。我们通过数组来实现这个操作 代码示范指的是第i个元素的祖宗(可以理解为一个集合中的祖宗,代表这个集合)一开始认为所有点都是...

前置知识:注意:实现堆需要用到完全二叉树的知识,如果未学习,点击了我也没用,因为我还没写 什么是堆?堆(heap),又叫二叉堆,是一种基于完全二叉树实现的数据结构,它可以实现在堆顶的元素是整个堆里面最大的元素(大根堆),也可以是最小的元素(小根堆),进而获取到整个仪器中的最值的一种数据结构。通过它,我们可以快速获取一组数据中的最值,它的时间复杂度只有O(logn),堆同时也支持删除操作,不过...

什么是栈?我们先回顾一下我们对于队列的学习。我们对于队列的理解,是一个队伍,在队尾进入,先进先出。那么我们应该通过什么来理解栈呢?你可以想象一堆叠在一起的书构成“书塔”,由下往上叠放。每次放书都放在最上面那层书的上面,如果你想取书,由于书的重力你很难从“书塔”的中间取出来书,所以你只能从这一叠书的最上面取书。所以我们每次取书都是取得最上面得一本。你可以理解为一个单头的队列,只有队首,插入元素...

什么是队列?队列(queue)是一种数据结构,它的特点是只允许从队尾入队,从队列头部出队,满足先进先出的性质,即先进入队列的元素先出队列。可以把它理解为排队排在前一个人的后面。比如数字1 5 7 9 2的队列,插入一个元素3,应该插入到队尾,成为3 1 5 7 9 2,再插入一个5,应该排到3的前面,变成5 3 1 5 7 9 2,出队一个头部元素2,则成为3 1 5 7 9,所以满足先进队...

对于线性动态规划,顾名思义指的就是根据题目内容可以得出线性相关的动态规划,如果书有序列(数组)那么状态就是一维的,如果是网格(棋盘)那么就是二维的。前文引例中的题目便是这种类型的。线性动态规划定义状态通常会考虑某类有序事件前面若干子事件的和 接下来我们给出例题 [HNOI2004] 打鼹鼠题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特...

动态规划的介绍动态规划(Dynamic Programming),简称DP,是运筹学的一个分支,用于解决多阶段决策过程中的最优化的一种数学方法,把多阶段问题变换为系列单阶段的问题加以解决的方法。 所以动态规划其实是一种数学方法,是求解某类问题的一种方法,不是一种特定的算法,更没有标准的数学表达式或者明确的定义的一种规则。 动态规划的根本是一种解决问题的思路,思考问题的方式,而不是具体的方法。...

前置知识注意 该算法的前置知识为队列(queue),如果没有学习,请点击这里进行学习 BFS的介绍BFS(宽度优先搜索 Breadth-First Search)是一种用于图的遍历或搜索的算法。它从一个节点开始,逐层遍历图中的所有节点。BFS通常用队列来实现,因为它需要按照节点的发现顺序来访问它们。 工作原理BFS的工作原理可以总结为以下几个步骤 循环:只要队列不为空,就执行以下操作: 出...