
洛谷
文章平均质量分 92
个人在洛谷平台上做的题目进行记录
lcx_defender
双非本科生上岸211,期待实现大厂梦
展开
-
【洛谷】P1443马的遍历——BFS例题
题目需要求的是棋盘上一匹马对于每一个点最短需要多少跳,由样例及象棋规则,一个马只能斜着跳(可能说的不太严谨),总共8个方向。要求最短跳数,不妨假设我们有无线匹马,每个点我们都同时派出1/8的马去占领下一跳(如果下一跳的点尚未被占领的话),并同时记录下这是第几跳。这种每一步,各个方向近乎同时进行的操作,就可以抽象成BFS(广度优先搜索)。上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。的矩阵,代表马到达某个点最少要走几步(不能到达则输出。以下代码注释是本蒟蒻的抽象内容,让各位看官见笑了。原创 2024-01-14 23:07:25 · 473 阅读 · 0 评论 -
【洛谷】P2709 小B的询问——莫队问题
每次询问,如果边界向外扩张,则重新计算当前的。普通的莫队做法:首先将所有询问按照询问边界进行排序(详见。行,每行一个整数,对应一个询问的答案。个询问,每个询问给定一个区间。个整数,表示 小B 的序列。累加和——即代码中变量。小B请你帮助他回答询问。原创 2024-01-13 20:31:21 · 1254 阅读 · 0 评论 -
【洛谷】前缀和入门
前缀和与二维前缀和基础思想入门讲解,涉及题目【蓝桥杯 2022 省赛】求和、【洛谷】B3612 求区间和、P2679宝石串、P1387最大正方形原创 2023-11-19 14:59:58 · 472 阅读 · 0 评论 -
【洛谷】P7103 族谱树 做题笔记&题解
遍历当前结点的所有孩子结点,并更新当前结点所在深度的最近祖先结点。再次找到这个深度时,更新祖先结点为并查集数组中记录的当前祖先的祖先结点。此处有个注意点,更新当前结点的祖先结点应该放在深搜完当前结点之后。这样才可以做到该结点的所有孩子结点的最近祖先结点是当前结点,而不是当前结点的父亲结点。为了方便遍历每个结点的直接孩子结点,本题我使用的是vector散列表(应该是这个叫法吧)。过程中,计算出每个结点对应的深度(主要是本题需要回答的询问是每个相同深度结点的LCA)。结点的最上祖先结点,减少后续查找深度。原创 2023-10-25 19:35:26 · 145 阅读 · 0 评论 -
【洛谷】P4171 满汉全席 题解
满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在数量繁多的菜色之中。由于菜色众多而繁杂,只有极少数博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过专家认证的满汉全席,也是中国厨师最大的荣誉之一。世界满汉全席协会是由能够料理满汉全席的专家厨师们所组成,而他们之间还细分为许多不同等级的厨师。为了招收新进的厨师进入世界满汉全席协会,将于近日举办满汉全席大赛,协会派遣许多会员当作评审员,为的就是要在参赛的厨师之中,找到满汉界的明日之星。原创 2023-09-05 17:01:14 · 133 阅读 · 0 评论 -
【洛谷】P8649 [蓝桥杯 2017 省 B] k 倍区间 题解
因为提到了连续子序列之和,这里我们采用前缀和数组预处理,可以较好地降低时间复杂度。时限 2 秒, 256M。蓝桥杯 2017 年第八届。(下标从1开始),处理为前缀和数组即。所求即转换成,nums的前缀和数组值对。,如果其中一段连续的子序列。的倍数,我们就称这个区间。你能求出数列中总共有多少个。的余数相等的情况进行组合。根据数论中的同余定理,的计数需要提前 +1.原创 2023-08-25 23:09:00 · 443 阅读 · 0 评论 -
【洛谷】P1927 防护伞 题解
特殊防护伞可以看作一个巨大的圆面,现在地球防卫小队决定将它的中心定位于某个黑子,然后用伞面挡住其他黑子。因为制造防护伞的材料成本特别高,所以我们希望伞面尽可能的小。于是地球防卫小队决定制造一个特殊防护伞,挡住太阳黑子爆发的区域,减少其对地球的影响。由于太阳相对于地球来说实在是太大了,我们可以把太阳表面看作一个平面,中心定为。根据题目需求,所求即为以每个点为圆心的能够覆盖所有点的圆面积最小值。而以每个点为圆心覆盖所有点的圆面积,就需要去计算以该点为圆心到其他点的最大值。第一行:一个实数,表示伞的面积。原创 2023-08-25 10:06:45 · 212 阅读 · 0 评论 -
【洛谷】P3887 世界杯 题解
众所周知,足球阵容里的11个球员都会被分配到场上某一个特别的位置,而这些位置主要分为守门员、后卫、中场和前锋四种,其中守门员有且只有一个,后卫、中场和前锋的人数取决于你安排的足球阵型。然后对于每个阵型,从仍未选择的球员中选择最好的对应数量的守门员、后卫、中场和前锋。为了保证选出的是当前未被选择的最强球员,可以有两种办法:1、每个位置的球员能力值进行排序,按顺序选取。作为一个对球员能力了如指掌的教练,你给每个球员的综合水平进行量化。个阵型都已经确定,而你需要知道的,是每个阵型的平均综合水平分别是多少。原创 2023-08-24 14:25:53 · 450 阅读 · 1 评论 -
【洛谷】B3616 【模板】队列 题解
队列与栈不同之处在于,先进队列的先出队列,就像排队一样,先排队的人可以先获得资格。那么,就需要有一个索引(指针)——当两个指针在同一位置时,说明栈内为空,不能执行出队操作,栈的大小为0。记住排在队伍最前面的元素位置,同时有一个索引(指针)——输出若干行,对于每个操作,按「题目描述」输出结果。再次尝试弹出队首,由于队列已经为空,此时无法弹出。行,每行表示一个操作。,且被插入队列的所有元素值是。每条输出之间应当用空行隔开。记住排在最后面的元素位置。弹出队首,此时队首为空。弹出队首,此时队首为。原创 2023-08-22 22:31:13 · 1108 阅读 · 1 评论 -
【洛谷】 P1449 后缀表达式 题解
根据后缀表达式的性质,我们在遇到数字的时候将数字根据顺序拼接计算好后再存储到栈里。需要注意的是,从栈中取出的第一个数运算时应该放在后面。后缀表达式不依赖于括号来表示运算符的优先级,而是通过运算符的位置来确定运算的顺序。所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。使用了同样的自定义类,但是根据题目需求,稍有更改。这道题可以使用C++的stl,也可以使用数组构造出来的栈结构,这道题与。原创 2023-08-21 23:31:07 · 288 阅读 · 1 评论 -
【洛谷】B3614 【模板】栈 题解——通过模板讲解栈
C++中已经有写好的stack和vector数据结构,不过为了更好的理解它的原理,今天我使用的是数组来演示栈的常见操作。栈——最早的元素最后才能被访问,最后加进去的元素最先被访问。如图,元素只能从最顶上被加进去,也只能从最顶上取出元素。对于每组数据,按照「题目描述」中的要求依次输出。每组数据第一行是一个整数,表示操作的次数。变为 1,也就表示,栈的大小为1。栈初始是空的,大小为0,所以下标。行,每行首先由一个字符串,为。对于第二组数据,始终为空,所以。向栈中添加元素,执行完后,,栈pop,下标左移。原创 2023-08-21 11:41:54 · 2524 阅读 · 1 评论 -
【洛谷】P8772 [蓝桥杯 2022 省 A] 求和 题解
给定n个整数a1a2⋯an, 求它们两两相乘再相加的和,即Sa1⋅a2a1⋅a3⋯a1⋅ana2⋅a3⋯an−2⋅an−1an−2⋅anan−1⋅an。原创 2023-08-18 23:06:32 · 1849 阅读 · 1 评论 -
【洛谷】P1165 日志分析 题解
该日志记录了两类操作:第一类操作为集装箱入库操作,以及该次入库的集装箱重量;集装箱入库和出库的规则为先进后出,即每次出库操作出库的集装箱为当前在仓库里所有集装箱中最晚入库的集装箱。不过题目中还提到了一个查询当前仓库中最重的集装箱,这就不是一个简单的栈了。反之,栈中元素应该增加,但是不应该放当前数,而是存入当前栈中最大数,即栈顶元素,维持栈内非单调递增。分析日志时,每遇到一次查询操作,都要报告出当前仓库中最大集装箱的重量。而出库,选择的是出掉最后入库的集装箱,这不由得让人想起一个典型的数据结构——栈。原创 2023-08-17 22:14:08 · 615 阅读 · 1 评论 -
【洛谷】P7934 JABUKE 题解
给出一个三角形三个顶点的坐标以及N个点的坐标,请您计算出这个三角形的面积和在这N个点中,有多少个点在这个三角形内部(包含边界)。原创 2023-08-16 23:13:34 · 108 阅读 · 1 评论 -
【洛谷】P6437 JACK 题解
这道题数据小,可以依靠暴力枚举去解决。挨个枚举数组里的数,规定好三个数的相对位置进行三层for循环。如果想减少遍历次数,可以对数组进行一个排序,从后往前遍历。个数字,满足他们的和不大于给定的整数。第一行有两个整数,分别表示数字个数。,请求出这个和最大可能是多少。输出一行一个整数表示答案。原创 2023-08-15 10:02:57 · 299 阅读 · 0 评论 -
【洛谷】P1652 圆 题解
题中所述,给出了几个圆,和两个点,要求的是这两个点之间所形成的曲线与圆交点数量的最小值。这是计算几何的一道入门题,难点在于将这个问题转化。画条曲线,问这条曲线最少穿过多少次圆的边界?仅一个整数,表示最少要穿过多少次圆的边界。个圆,保证任意两个圆都不相交且不相切。,保证均不在某个圆上。保证圆之间没有公共点。原创 2023-08-14 22:32:32 · 186 阅读 · 0 评论 -
【洛谷】P3742 umi的函数 题解
umi 的函数原创 2023-08-14 10:46:30 · 218 阅读 · 0 评论 -
【洛谷】P1031 均分纸牌 题解
从第一个牌堆开始,如果第一个牌堆差值为0,那么说明它不需要其他牌堆给他牌。如果是他有多余的牌,那么也只能给右边那一个,要完或者给完就没有它的事了,此时可以记录一次操作。题目要求用最少的牌堆移动次数,那么,他每次往左或往右分牌或要牌都把它下一次要分给周围其他牌堆的牌都要到手或者分出去。要想将牌堆数量均分,我们首先想到先去求取牌堆数的平均值,然后算出每个牌堆与目标均值的差值,弄明白每个牌堆的需求。其他堆上取的纸牌,可以移到相邻左边或右边的堆上。的堆上取的纸牌,只能移到编号为。堆上取的纸牌,只能移到编号为。原创 2023-08-13 10:14:16 · 321 阅读 · 1 评论 -
【洛谷】B2137 判决素数个数 题解
因为一个数在小于 自己本身 开根号 sqrt(n) 一侧没有因子的情况下,在大于 sqrt(n) 也不会存在因子。这题的关键就是在判断素数,好在本题没有在时间上限制,所以采用何种方法去判断素数都可以AC。开始,如果有除自己本身以外其他因子的数,都是合数(非素数)。这样的做法与网上其他埃筛法初始化可能存在一点不同,因为考虑到,创建一个。根据实际提交的代码,当使用埃筛法求素数时,如果数组最大开到。埃筛法的理念,主要在于,当我们找到一个素数时,那么这个素数的。首先需要提醒的是,本题题面中给出的。原创 2023-08-12 10:17:48 · 652 阅读 · 1 评论 -
【洛谷】二分查找问题[NOIP2015]聪明的质检员 做题笔记
是一名质量监督员,最近负责检验一批矿产的质量。不想费时间去检验另一批矿产,所以他想通过调整参数。行,表示区间,每行两个整数,中间用空格隔开,第。,分别表示矿石的个数、区间的个数和标准值。行,每行两个整数,中间用空格隔开,第。相差太多,就需要再去检验另一批矿产。的值,让检验结果尽可能的靠近标准值。逐一编号,每个矿石都有自己的重量。若这批矿产的检验结果与所给标准值。的时候,三个区间上检验值分别为。,计算矿石在这个区间上的检验值。为各个区间的检验值之和。一个整数,表示所求的最小值。,这批矿产的检验结果为。原创 2023-07-27 14:07:51 · 312 阅读 · 1 评论