自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(193)
  • 收藏
  • 关注

原创 【总结】 2019的愿望与对一些算法的总结

转眼间,又是一年过去了。2019终于变成了历史,却仿佛还在昨天。与伙伴们在机房所经历的酸甜苦辣,也终于洗涤了我们的心。一切似乎都平静了,名次似乎都变得不那么重要,重要的是努力的过程,不是么?虽然有些天赋好的大佬在机房不停水沝淼㵘,仍然能获得一等奖,但他们,却失去了拼搏的快乐,终究会被淘汰。好久没写总结了,现在就在这里总结一下2018的收获与失败吧。2018,确实是收获非常大的一年。在2018...

2019-03-01 20:57:43 296 5

原创 本蒟蒻在编程时遇到的一个问题,希望大佬能够解答!

我在写程序时讲一个代码交了上去,结果是RE(Runtime Error),调了接近两个小时后,实在没法子,就将变量的顺序交换了一下,结果却AC(Accepted)了?这是为什么?我今天问老师的时候,老师也表示不知道?在网上查时,网上的解答也是云里雾里的,并没有具体的解释。难道是c++内置的错误?那我们NOIP考试时不知道怎么办?对于这种情况出现的问题,希望看到本篇博客的各位大佬们在留言区能...

2019-02-15 20:48:14 353 3

原创 【题解 && 拓扑思维】 C - Building Company

模拟拓扑结构,从当前队列中拥有的工位出发,将当前工位堆中能处理的工作全部处理完,同时记录一下如果当前工位是当前项目所需要的最后一个工位,那么就将当前项目所能获得的新工位放入队列中继续拓展。对于每一个项目的几个条件,我们其实可以当作一些约束,当这些约束全部满足,那么就可以加入新员工继续拓展。对于每一个项目,需要满足几个条件,对于每一个条件,表示为第i项工作需要有几个人做。对于每一项工作,我们开一个堆,记录当前工作需要的人数以及当前的项目的编号。这几个条件全部满足后,这个项目就可以收入囊下,同时获得新的员工。

2024-01-31 12:37:22 301

原创 【题解 && Trie树 && 字符串】 C - New but Nostalgic Problem

这个时候就没有上述的限制了(每种只能取一个),我们每种可以取若干个,同理,我们也是从小到大枚举,找到合适的那个字符(第一个字符串的和>=k的地方),而后按照上述的方式检验是否可行即可。首先,答案已经确定了至少有abc,也就是说目前挑选出的几个字符串中都是以abc打头的,可能就是abc,也可能是abc[a-z]当cnt1+cnt2>=k时,说明我们能找出至少k个字符串,使得他们的前缀是abc,这个时候答案确定。所以,在答案不改变的情况下,我们对于每种情况至多只能取出一个字符串。什么情况下,答案是abc呢?

2024-01-19 16:36:28 393

原创 【题解 && 优化dp】 B - Base Station Construction

我刚开始其实想从线段入手,但是发现重叠的部分根本不好处理,以至于我被卡了思路,一直到结束。这样表示显然是没问题的,因为除了第一个基站,其他基站的设立必定是存在上一个基站的。表示必须在第i个点建设基站,并且i号点之前的线段全部满足要求时所需要的最小代价。我们注意到题目要求:每一条线段上都必须要有一个基站存在。但是这个j显然不能乱找,怎么样去找这个j才是合法的呢?当dp状态设定不好的时候,我们不妨从最简单的部分出发。建基站的位置(注意,是上一个!这个j的位置显然是需要经过预处理的。一个是点,一个是线段。

2024-01-19 14:17:34 435

原创 【蓝桥杯 && LCA && 差分】 砍树

这道题还是比较裸的一道书上差分的题目了对于每一对标记点(x,y)他们之间的路径就是x−LCAxy−y这条路径上的每一条边都要经过。那么对于一条边,什么时候砍掉这条边的时候,这几对点互相到达不了呢?那就是这条边是这m条路径(一共m对点,每一对点都有一条路径)的公共边也就是说这条边被经过了m次因此,对于每一条边,我们用一个数组记录这条边被经过了几次最后经过次数为m的边就是可以砍掉的边,最后取一个max即可那么我们如何累加边经过的次数呢。

2023-11-28 22:03:10 440 2

原创 【面向对象】代码存一存

【代码】【面向对象】代码存一存。

2023-11-09 16:45:53 248

原创 【题解 && 堆】 [蓝桥杯2023初赛] 整数删除

你删除一个数之后,当前数左边和右边的两个数会加上当前这个数,你虽然把这两个数放到了堆里面,但是这个堆里面仍然存在着未加上被删数的这两个数。但是我们知道这两个数实际上已经不存在了,已经变成新的加上被删数的两个数了。如果当前数被加上了新的数,那么加入堆之后就让这个位置的时间戳+1,最后取出堆顶元素的时候只需要比较当前堆顶元素的时间戳和当前位置的实际时间戳是否相同即可。每次取出堆顶元素删除,而后将他的前一个以及后一个元素的值加上他的值就可以了。我们用堆记录当前的最小值以及当前值所在的下标。

2023-11-08 22:17:11 358

原创 [蓝桥杯 2022 省 A] 推导部分和

对于一个长度为N的整数数列A1​A2​⋯AN​,小蓝想知道下标l到r的部分和il∑r​Ai​Al​Al1​⋯Ar​是多少?然而,小蓝并不知道数列中每个数的值是多少,他只知道它的M个部分和的值。其中第i个部分和是下标li​到ri​的部分和∑jli​ri​​Ali​​Ali​1​⋯Ari​​, 值是Si​。

2023-11-05 23:07:00 966 3

原创 【题解 && 线段树】[蓝桥杯 2022 省 A] 选数异或

给定一个长度为n的数列A1​A2​⋯An​和一个非负整数x, 给定m次查询, 每次询问能否从某个区间lr中选择两个数使得他们的异或等于x。

2023-11-02 11:29:04 433

原创 【实验五】题解

我是敦立坤的爹!!!一个整数集合中含有n个数字,每个数字都在0n的n+1个数字中有且仅有一个数字不在该集合中,请找出这个数字。

2023-11-01 17:02:10 789 4

原创 【第七章作业】题解

定义一个包括年、月、日的结构体变量,读入年、月、日,计算该日在当年中是第几天。注意闰年问题。请写一个函数days实现计算,将读入的结构体变量传递给days函数,计算后将答案返回给main函数进行输出。

2023-11-01 15:25:09 292

原创 【第六章作业】题解

下面代码仅供借鉴,并不是唯一正解!有些同学的方法比我巧妙的多!

2023-10-31 22:19:41 432 1

原创 【题解 && 单调队列优化dp】 简单的加法乘法计算题

那么对于第一种方式,我们发现这是一段长度固定区间里的最小值。对于第二种方式,由于m最大只有10,所以我们可以暴力转移。由于对于每一步而言,我们都需要的是最小步数。我们可以考虑滑动窗口,即单调队列去优化dp。线段树常数太大,会t,不建议使用。表示达到i时的最小步数。

2023-10-24 20:21:17 191 2

原创 【题解 && 树形dp &&拆位】 树上异或

给定一棵包含n个节点的树,第i个点有一个点权xi​。对于树上的n−1条边,每条边选择删除或不删除,有2n−1种选择是否删除每条边的方案。对于每种删除边的方案,设删除后的图包含k个连通块,定义这个方案的权值为图中连通块点权异或和的乘积。形式化地说,若这张图包含连通块C1​C2​Ck​,其中Ci​是第i个连通块的顶点集合,设vi​⨁u∈Ci​​xu​,则这个方案的权值为v1​×v2​×⋯×vk​。求这。

2023-10-21 23:54:47 135

原创 【题解 && 动态规划】 Colored Rectangles

乍一看我还以为是贪心!猫 想想感觉没问题但是局部最优并不能保证全局最优比如这组数据如果按照贪心的做法,答案是20*20*2但是其实答案是19*20*4因此这道题用贪心是不对的于是我们考虑dp可以观察到这道题的n非常小只有200这就暗示我们这道题可以用n3的做法去解决那么我们就可以这样设dp状态fijk表示用三个颜色分别用了前ijk个数,所能获得的最大价值如何转移呢?考虑一次可以取两个数也就是说可以取12,23,13。

2023-10-03 20:08:39 228

原创 【无题666】

【代码】【无题666】

2023-09-27 19:56:14 89

原创 【二分答案 && dp】 Bare Minimum Difference

进一步分析我们发现这道题我们只需要关注最小值和最大值,所以每个区间的和只要介于最小值和最大值之间就可以。如果从分割区间的方式出发,这道题很难进行维护,因为分割的方式多样,每一次不同的分割都会产生不同的结果。同时注意到分割区间至少分分割出两个区间,所以我们只需要把一个区间的可能性判掉就行了。但是我们并不需要求出具体的分割方式,我们只需要去检验当前分割方式是否可行即可。枚举所有可能得最小值,而后二分我们的答案,得出我们的最大值。我们注意到对于整个序列来说,子区间的个数最多只有。这样我们就得到了合法区间的范围。

2023-09-08 21:52:41 256

原创 【题解】 模拟赛2

假设商品价格为x两者比较一下大小即可。

2023-07-22 15:57:47 183 1

原创 【题解】 模拟赛3题解

利用一个变量记录目前连号的个数再用一个变量记录最多的个数如果满足ai==ai−11,那么连号个数+1否则连号个数重置为1边统计边记录最大值。

2023-07-19 15:30:40 370

原创 【题解】 模拟赛2 题解

假设商品价格为x两者比较一下大小即可。

2023-07-17 11:05:00 220 2

原创 【滨小】模拟赛题解

T1T1送分题直接开个数组表示第i个栅栏是否被涂过循环两遍将涂过的栅栏标记最后累加一遍即可T2模拟题我们首先分析这个人的移动规律:先往右1,在往左2,在往右4……我们就会发现这道题有两个关键点:一是方向,这个人是先往右再往左,是有两个方向另一个人在这个人的左边或者右边都有可能这是第一个要注意的地方第二个就是距离我们注意到这个距离的增加是有规律的1,2,4,8……

2023-07-15 11:09:15 125

原创 【滨小之旅】模拟赛1 题解

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 n个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 t厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知 n个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度h,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

2023-07-14 09:49:37 207

原创 【滨小之旅背包】01背包再复习

,而你作为荒教最优秀的扫地僧,此时忍不住向被打落十八层地狱的前同事lzj学习坏事!之所以我们会出现一颗丹药被用到无数次的困境,是因为我们用当前状态下已经更新过的状态去更新下面还未更新过的状态。好,这就意味着此时这个丹药我们已经用了,按道理来说我们已经不能再用了。被恶魔lzj带坏的你,现在想知道你最多能带走多少功效的丹药!如果是这样顺序循环的话,一颗丹药的受益是可以不断被叠加的。),长生丹药由于其独一无二的珍贵性,每种丹药。而目前需要被更新的状态只跟前面的状态有关。这样一来,已经被更新的状态是后面的状态。

2023-07-13 13:44:19 79

原创 【滨小之旅递归】国王的魔镜

国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。

2023-07-12 14:57:25 215

原创 【滨小之旅递归】htd种田

可能以后 htd就去种田了。

2023-07-12 14:20:58 80

原创 【滨小之旅递归】选书

学校放寒假时,信息学奥赛辅导老师有1,2,3……x本书,要分给参加培训的x个人,每人只能选一本书,但是每人有两本喜欢的书。老师事先让每个人将自己喜欢的书填写在一张表上。然后根据他们填写的表来分配书本,希望设计一个程序帮助老师求出所有可能的分配方案,使每个学生都满意。

2023-07-12 13:46:32 92

原创 【滨小之旅递归】 组合数的输出

排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r≤n),我们可以简单地将n个元素理解为自然数12n,从中任取r个数。现要求你输出所有组合。例如n5r3123124125134135145234235245345。

2023-07-12 13:15:37 131

原创 【滨小】关于结构体

struct 名称(例如Node) {…… };或者这样struct 名称(例如Node) {这样子一来,我们就定义了一个aaa结构体以上面花瓶的例子为例int w , v;我们定义了一个名为hphphp的结构体hpiwhp[i].whpiw表示第i个花瓶的价值hpivhp[i].vhpiv表示第i个花瓶的体积通过这样的定义,我们就将原来散乱的价值和体积都归并到了一个结构体里面处理的时候也更好能体现这个整体。

2023-07-12 11:01:09 182

原创 【滨小】贪心题解

注意:如果扫描完了所有攻击系统的攻击力还不能够击破当前防御系统的防御值的话,显然我们就不能攻击母舰本身了,此时应输出0。用攻击力小的炮弹将母舰的防御系统打崩之后,我们就可以用攻击力大的炮弹去共计母舰本体了。这样一来我们就能用尽可能小的炮弹去击毁防御系统而剩下攻击力大的炮弹能去攻击母舰本身了。也就是说,我们去攻击母舰的防御系统的时候,我们就要尽可能用到攻击力小的炮弹。想要伤害最大,是不是就需要我们用攻击力尽可能大的炮弹去攻击母舰的本体呢?对于相同数量的牛奶,显然单价越低的我们所需要的花费也越少。

2023-07-12 10:38:47 46

原创 【滨小之旅】浅谈深搜

其实一听这个名字,你就应该已经能感受到一种不达目的不罢休的决心和持之以恒的毅力。假设现在有一处居民楼着火了,消防队员赶到现场想要从火场中救出受难人。一定是要把全部的地方全部都搜索一遍才能救出所有的人。没错,这就是搜索,坚韧而固执的搜索。他显然不可能搜索到一半就退出了。(其实主要针对深度优先搜索)

2023-07-11 22:49:45 126

原创 【滨小之旅背包】小A点菜

uim 神犇拿到了 uoi 的 ra(镭牌)后,立刻拉着基友小 A 到了一家……餐馆,很低端的那种。uim 指着墙上的价目表(太低级了没有菜单),说:“随便点”。

2023-07-11 20:58:14 123

原创 【滨小之旅dp】数的划分

我们在中讲到了这道题的dfs方法那么这边就说一说他的另一种解法。

2023-07-09 16:48:00 86

原创 【滨小之旅搜索】八皇后

的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。前三行为前三个解,每个解的两个数字之间用一个空格隔开。每一行只能放一个棋子,所以我们在每一行中只要直接枚举当前行棋子的列号就可以了。我们只需要用三个数组分别表示当前列,两条对角线棋子的放置情况就可以了。注意到题目给我们的输出方式,是以行为顺序输出相应棋子的列号的。行号是我们搜索的状态,所以不用管,直接保证了每行只能有一颗棋子。注意棋子能放的条件:每行每列每条对角线只能有一颗棋子。

2023-07-09 16:21:32 110

原创 【滨小之旅搜索】自然数的拆分变式——数的划分

将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。n7k3,下面三种分法被认为是相同的。115;151;511问有多少种不同的分法。

2023-07-09 15:52:57 221

原创 【滨小之旅搜索】自然数的拆分

任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。现在给你一个自然数n,要求你求出n的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。

2023-07-09 15:42:18 110

原创 【滨小之旅二分答案】数列分段

对于给定的一个长度为N的正整数数列A1∼N​,现要将其分成MM≤N)段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列42451要分成3段。42451第一段和为6,第2段和为9,第3段和为1,和最大值为9。42451第一段和为4,第2段和为6,第3段和为6,和最大值为6。并且无论如何分段,最大值不会小于6。所以可以得到要将数列42451要分成3。

2023-07-09 13:48:16 139

原创 【滨小之旅贪心】纪念品分组

元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

2023-07-08 21:44:21 189

原创 【滨小之旅贪心】修理牛棚

做人能贪心就贪心正难则反。

2023-07-08 21:09:01 532 1

原创 【无标题】

记录

2022-10-21 22:02:26 78 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除