- 博客(44)
- 收藏
- 关注
原创 AcWing.算法基础课-第三章 搜索与图论
dfs是一种深度优先搜索算法,他秉持着不装南墙不回头的性格,一直会沿着当前道路走到头才会换道路,对于我们一般用dfs的方式去枚举并判断合法性。而一般在深度优先搜索算法中往往伴随着两个关键操作,回溯和剪枝;回溯就到达终点后一层一层回到上个状态,选择不同的道路,这里我们我进行回复现场的操作,就是把动过的东西还原回去,不影响下次dfs.剪枝,顾名思义减去不用的枝条也就是把那些当前看来已经不可能的选项排除掉,剪枝的方式有很多,例如:最优性剪枝(如果当前结果没有之前的优秀那么就直接删除这个道路)....
2024-08-05 11:50:30
236
原创 AcWing.算法基础课-第二章 基础数据结构
链表是一种、非顺序的,数据元素的逻辑顺序是通过链表中的次序实现的。链表分为两种单链表,双链表,如上图所示。单链表:单方向,双链表:双向;
2024-08-01 00:12:08
905
原创 第三部分 图论 - 第2章 最小生成树
一个的最小连通子图称作该图的生成树(不能带环,保持连通,但边要尽可能的少)。有n个顶点的连通图的生成树有n个顶点和。
2024-07-27 19:38:59
883
原创 第三部分-图论:最短路径
C国有n个大城市和m条道路,每条道路连接这n个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这m条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为1条。C国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到C国旅游。
2024-07-19 16:38:05
248
原创 2024暑假集训第四次考试(终极测试)
虽然这是最后一次考试,也是10天暑假集训的终极测试,但是题目难度反而没那么高,这里的难度是思考深度,但是主要是广范围的考所学知识的简单应用(也就是基本都是模版题的应用,只不过知识面广,难度不大),并且也取得了不错的成绩,废话不多说,look look题吧!!
2024-07-05 17:32:31
205
原创 2024暑假集训第三次考试
这次考试的题目第一道题比较亏,所以应该加强对算法基础原理的理解,而不是一味的背板子,虽然有些算法的原理晦涩难懂(图论的最短路径),以及第四题的DP题,是算法竞赛的一大难点。要勤加练习!!
2024-07-05 17:18:43
738
原创 2024暑假集训第二次考试
这是暑假集训第二次考试总体成绩不理想,但是要继续加油,出现的问题主要是算法模版掌握不牢,所以要理解性记忆算法模版,以及思维题做的不好,要多练习思维题,提高逻辑思维。
2024-07-05 16:46:11
865
原创 luogu-P10570 [JRKSJ R8] 网球
首先,找出这两个数的最大公因数,将这两个数分别除以最大公因数,则这两个数互质,判断如果有一方<=c,求出他们翻倍的倍数(ceil(c*1.0/min(a,b))),那么将他们分别乘ceil(c*1.0/min(a,b))(这里如果用循环会超时),即可求出a+b最小值,这里主要考察两个数除最大公因数为互质,即结果会最小。数学问题,暴力这个范围会超时。[JRKSJ R8] 网球 - 洛谷。
2024-06-11 21:34:58
382
原创 浅谈二分算法
二分查找(英语:binary search),也称折半搜索(英语:half-interval search)、对数搜索(英语:logarithmic search),是用来在一个有序数组中查找某一元素的算法。
2024-05-26 18:17:45
775
原创 月中第二次测评2024.4.14
这次第二次测评总分900,得830,难度偏简单。详细成绩:除e题外其余全都满分。这次考试中我本来可以ak的,但是因为情况考虑不充分,方向数组没有掌握而丢分,实属不应该,下次我一定会ak!!呀!!!
2024-04-14 16:30:40
318
原创 浅谈贪心法
贪心就是在局部范围内求得最优解以求在全局范围内取得最优解。但是这只是理想情况,还有许多不理想情况,这是我们就要判断此时贪心法的正确性。判断贪心法的方法有很多:如数学法,反证法........但是当你不会用这些方法来证明你的贪心是正确的时候,亦可以借助你的直觉,多做些贪心的题目这种直觉会越发准确。但是有一部分题目看起来像贪心但又不是贪心,就比如一些背包问题dp,所以贪心最重要的的是要判断这道题是不是贪心,这里可以用暴力求解,多想几个数据,看看贪心的方法是不是最优的(俗称:手动暴力)。
2024-02-15 23:38:36
396
原创 P3799 妖梦拼木棒
1、这道题是的一道暴力枚举题目,可以用桶把数据(下标是这个数字,元素是出现的次数)存储下来之后按照题目题目给的范围枚举两个长度和是边长的木棒(应为是等边三角形,所以肯定有两根木棒等长,剩下两根木棒的长度之和为边长,表示为a = b = c+d,而我们就要枚举c和d = 2才可以 并且a[i+i] >= 2满足题意至少四根木棒,那么计算组合的公式就是。应为只有a[i+j]长度相同了,直接乘上a[i]*a[j]的总数了。
2024-02-05 10:48:34
319
原创 #P0979. [CSP-J 2021] 网络连接
这道题真的有点恶心,一道大模拟!!可以看到模拟题的题意还是非常长的,所以这时候一定要看清题意再去动手做题,不然有可能某个模块写到一半发现下面的要求跟你写的有点不对,改的麻烦是一回事,搞心态才是重点!!处理模块如上:(介绍几个方法)1、sscanf(char[],string格式化字符串,保存的变量.....);这个函数会返回读入了几个合法变量;比如int t = sscanf(“20140523”,“%4d%2d%2d”,&y,&m,&d);此时三个变量都合法那么t = 3;
2024-02-01 22:30:55
349
1
原创 luogu: P2089 烤鸡
在递归种如果当前这个搭配的美味指数已经大于目标的美味指数就直接结束当前递归,表示结束了此种方案的继续搭配。这道题还有一个要先打印出搭配种数,就是要用一个数组把可能性存下来,要不然调用两次递归就会超时。根据题意10种配料每种最多放三克,那么判断美味指数如果大于30就直接输出0就好了。1、运用全排列模版代码把所有可能性都选出来,一个一个判断。
2024-01-11 22:45:32
372
1
原创 P1597 语句解析
1、如果每段代码中有数字和字母,判断为数字赋值给字母。switch语句进行判断字母的种类(a,b,c),数字字符-‘0’的形式的得到数字。2、如果每段代码中是字母和字母,判断字母赋值给字母。if-else语句判断是哪两个字母进行赋值。2、声明三个变量a,b,c,根据处理结果进行赋值。1、将输入的“代码”按照分号进行分段处理。
2023-12-18 12:09:07
482
1
原创 1130:找第一个只出现一次的字符
1、就是标记数组,出现一次利用ascll-‘a’形式作为下标,进行统计。2、重新遍历数组,查看是否为出现一次。
2023-12-14 21:13:21
485
1
原创 1401:机器翻译(详细过程)
1.len表示单词长度,head表示我单词开头的位置,之后这个单词位置为head+len。2.我每次查询的时候就查询head-head+len-1这个区间就好了。3、如果按照题目描述 用循环数组去做代码很长,可读性并不高。
2023-12-11 08:37:52
846
原创 记一次数组阶段性测试
3、要注意这次的标记数组很大,很多数据不需要,我们不需要把数组开成1e8+;只需要开成1010这前1000是我们真正需要的数,所以如果他的差>1000直接flag标记为不欢乐就好了。2、查看1~n-1范围内有没有被标记的数据,则数组不是欢乐的跳;这次测试都是6水题,虽然还是错了1道,一个测试点.......1、循环计算相邻数的差,标记数组记录。错误原因:代码与题意不符。
2023-11-26 15:06:51
357
1
原创 P2615 [NOIP2015 提高组] 神奇的幻方
1、这是一道需要一点点脑子的模拟题,首先重中之重要注意他的空间,一定要按照规定开数组,不要胡乱来,最保险就是按照题目要求多开10个,39*39+10个。2、按照条件一步一步判断填数,很简单,多写几个if...else不过有些大佬使用各种数学方法解决的本蒟蒻看不懂。大佬二号(模拟罗伯法。
2023-11-21 00:31:31
43
1
原创 蛇形矩阵P5731 【深基5.习6】蛇形方阵
/1、在代码中如果这个蛇形是从下向上填数的时候,就是x++让他向下移动一行,那么下次x减去1刚好在第i个数的位置。//问题:在没有改良的代码中每次换列的时候上面或是下面都有零,发现原来是如果直接加上或减去dx[d]//会跳过a[1][某一列]或a[n][某一列],所以需要对代码进行改进;//2、从上向下填数同理,x--;
2023-11-20 23:35:25
51
1
图论基础就是一些NOI学习中比较简单的图论基础,如存图,读图,dijkstra,SPFA,Bellman-Ford,Floyd等
2024-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人