自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2025寒假第四周周报

本周大的可以说是一塌糊涂,虽然存在客观因素,但主要还是自身定力不够,再下一周没有训练的时候要适当加练,尽快追赶上大部队。本周进行了蓝桥杯的相关训练,发现自己写代码有很多时候很粗心,比如好几道题忘记开long long导致一分没有。这也是一个很致命的缺点,在以后需要改正。天梯赛模拟题还是思路不够清晰,还是要多写多练,不然就会导致很多时候没有办法完成题目。

2025-02-23 19:28:48 269

原创 第四周补题情况

赛时的时候找的几个样例都具有特例,结果找到一个错误的规律,直接就交上去了。赛后又造了几个样例,才发现自己的规律是错的。然后又是忘记取模,跟忘记开longlong,wa了好几回。正确规律如下:先将正方形分为两大类:直接跟斜的。(左侧为斜的,右侧为直接)直接的:可以发现它实际上就是从1到(n-1)的平方和相加。斜的:实际上每一个写的都是在相对应的直接的中转变的(除了上图右边所示的无法转变,其余均可)而每一次转变又有不同顶点之分,每次就是对应各自的边所占有的顶点个数-2即可。

2025-02-23 19:20:51 819

原创 2025寒假第三周周报

本周态度较上两周而言有一定改进,题解大部分都按时写了,但还是存在问题,补题的时候没发现,但写周报的时候发现,本周补的主要都是模拟题,有关算法较少(主要还是自己思路不清,赛时没能解决)。对于天梯赛一类没有罚时的题还是要敢于尝试暴力,本周补的题中有的就是,纯暴力就能过,赛时觉得会超时,就不敢交。下一周要尽可能多补一些题来提升自己,比赛的时候要更加专注的做题。下周希望能把牛客上的题在尝试去补一补。

2025-02-16 19:20:21 293

原创 2025寒假训练第三周补题情况

实际上,只需要将其连接关系用一个邻接表来存,然后每次都dfs的去遍历,按照题目的意思是开始以为需要回溯,结果连样例都没过去,不回溯过了。并且还需要注意一个细节就是,他的要求是如果有相同长度的表需要输出字典序最小的那条,这个也要注意,补题的时候因为这个wa了一次。比赛的时候知道是最短路问题该用dfs来写,但是在写的时候不知道哪里出问题一直没有通过样例,最后半小时选择放弃该题目。比赛的时候用的bfs思路写的,然后不知道什么问题只能过一个样例点,赛后改用dfs写的。主要是读懂题意,剩下的就是模拟了。

2025-02-16 18:16:48 220

原创 算法笔记——字典树

一棵字典树树就像一个小型字典一样,当你拿到一个字想去字典上查的时候(以拼音查法为例),你会先查这个拼音的开头字母,然后在按需查找他下一个字母直到找到相对应的拼音才可以。字典树也是如此,他是按照该字符串的先后顺序而来(他的查找是在每一个层中查找相对应的字符,如果能查到,下一个字符的范围将会缩小在他的子树中查找;没有查到就可退出)。具体看下面例子理解。

2025-02-16 16:09:50 286

原创 牛客训练营(三)补题

主要思路就是分批处理+二分,将不同方向的小球分别存放于两个vector容器中,然后再两个容器之前处理,先判断,第k对小球能否发生碰撞,然后再去使用二分的手法来判断小球在哪里发生的碰撞,能否碰撞和在哪里碰撞要分开处理,思路更加清晰(开始补题的时候,想着将他们一起处理,这样不仅会导致思路不清晰,既是理清思路,也没有办法使用二分,导致代码超时)还是练的较少,对这种题目没有判断力,只能按照题目的意思一步步模拟。比赛的时候看到同一侧添加同一侧删除,以为是栈,一直用栈来考虑,没有想到是树。

2025-02-16 14:27:46 198

原创 2025寒假训练周报(一+二)

简单来说,这两周的状态并不是特别好,回家总想偷懒,然后又去学车,导致补题数目太少,天体训练赛有的题总是差一点,赛后再想想又能想到,主要还是练的太少,下周在考完科三(周三)以后要调整自己的状态,努力训练,不能总是这样。(1)模拟题需要多练,这两周的模拟题总是有思路但写着写着就乱,东一头西一头的,下周要先将思路理清再动手。补题情况:天梯赛和年前的cf相关题目补的比较少,牛客每一场都有补题,但补得并不算多。两周主要学习内容计算几何前四章,和字典树(昨天晚上学的,没得及整理,下周补上)(下周周报中会提交该场题解)

2025-02-09 19:44:44 293

原创 牛客训练营(五)补题

赛时思考情况太过简单,没有细分情况导致部分情况并不能通过,(我只分了a^b!=c的情况,然后就全部统计)赛后看到题解发现,其实不仅要考虑不等的情况,还要考虑相同的情况。所以会导致通过率85%,有一小部分不能通过。第一次补题的时候没有将所有情况都想到。实际上之后没填的棋子足够多就可以赢(没有考虑这种情况),而后就要考虑当前只有两步可以连成的就都算。

2025-02-09 18:08:03 356

原创 2025天梯训练赛(三)——补题

它在cin和scanf混用的时候或者使用scanf和printf,会发生读不进去数据的情况,所以在赛时的时候,就读进去一组数据,导致输出一直是错的。分析:换新松枝的情况:(1)当盒子中最上层的松针和推送器上的松针都比当前松枝上的松针都小的时候就换新的松枝。(2)当小盒中松针不满足要求,但推送其上已经没有松针了,此时换一个新的松枝。(3)当手中的松枝已经满了时,也需要换新的松枝。每次插入的松针是先尽可能的插盒子里的松针,不满足条件再去考虑传送器上的松针,但不能比当前手中的松针小。

2025-02-08 21:29:37 304

原创 牛客训练营(二)

这道题有一个小小的“坑”,就是题目中所说的最大连通块并不是真正的最大连通块(开始的时候没有想到这个点,所以一直不明白倒数第二个样例为什么是2),而是只要能分离的连通块都是最大连通块,所以只需要找到分离所需要敲的砖最少的连通块即可。通过dfs来找出每一个连通块,然后统计该连通块周围的‘0’的个数,并和之前存下来的相比较,最终找到周围‘0’最少的连通块。

2025-01-26 20:02:06 326

原创 牛客训练营(一)补题

在赛时的时候,想过用传暴力去写,但是一定会超时,所以就没交,赛后看了其他人的代码,其实只需要改动一行就可以。迭代更新双指针(x、y)的值,从而得出答案。

2025-01-26 19:08:56 283

原创 2025寒假训练——天梯赛训练(1)

最主要的就是通过后序遍历和中序遍历来将这棵二叉树的形态确定下来,后序遍历是根左右,中序遍历是左根右,所以后序遍历的最后一个就一定是跟,然后在中序中寻找对应元素,前面的是左子树,后边的是右子树,然后依次递归;这道题在去年天梯赛练习的时候也写过,当使用了最笨的办法,一个一个输入的,今年就有所不同了,直接按照题意跑的循环,但是循环条件写错了,跑成了死循环,经过几次更改最终成功通过。最开始想复杂了,以为是一个公式,于是开始硬算,后来发现很多人通过的都很快,觉得自己的思路有问题,想着跑一下纯暴力,结果通过了。

2025-01-26 18:23:33 357

原创 暑期训练第二周专项练习:搜索与搜索剪枝

大炮爆炸是一个连锁反应,实际上在一个大炮被击毁的时候,周围3x3的网格内的如果有大炮,也会被击毁,在引起一个3x3的网格内产生的大炮爆炸,依次类推。所以是一连通块的问题,实际上就是每次都用齐齐的大炮数量最小的连通块去炸司机大炮数量最大的连通块,以此类推,所以可知只要齐齐的连通块数量小于司机的时候,那么此时齐齐就做不到将司机的大炮全部炸毁,就会输出-1;反之,是需要让齐齐的连通块进行排序,然后只要比司机多的那一部分的连通块内的大炮数量即可。我用是的dfs去写,问过队友后发现实际上也可以使用bfs去写。

2024-08-08 14:36:38 372

原创 河南萌新联赛2024第(四)场:河南理工大学

在比赛的时候就想出了解决办法,只不过跟题解想的方法不同,也是先将数组排序,只不过我不是通过异或之后再求同或,我是将相邻的两个数字转会为二进制01字符串,而后按照题目中给的方式求出上述两个字符串同或后的字符串,再将同或后的字符串转化为数字,比较数字的大小。题解的思路:事先将30以内的数字求出来,将他们存入一个数组sum中,然后将题目中的数组读入并排序,然后求出相邻两个数的以后和最小值kk(异或和最小,不同数位的和最小,相同数位的和越大)。实际上这道题将两个点相邻的每一个点有多少个连接点,然后两者相乘。

2024-08-08 14:36:24 456

原创 河南萌新联赛2024第(三)场:河南大学

这场打的巨烂,前三道题写的都挺快的,但是第四题看到大家都写出了L题,所以就开始去写L题了,但是由于map开错了,后来反复给也没有改对,心情就有些急躁,想着换一个写法去写,但是新的写法有很大的漏洞,所以不断超时或者报错。写F题的时候,脑子没转过来,将一个简单的规律绕了特别大的一个圈子写出来的(八个if条件进行判断)反复出错,后来就给自己的心态写崩了,后边的题看都没看。

2024-08-04 13:07:14 417

原创 2024 暑假友谊赛 3补题情况

实际上,使用dfs去找,先将第一个元素放入队列,dfs的时候先去判断队列的前端,如果数组中存在元素是当前元素的一半并且该元素没有别标记过,那就将该元素存到队列的前端,然后去dfs该元素;比赛的时候交了一次wa了,然后就想到了如果第一个字符串中的最小值都比第二个大的时候,就不能按照直接排的顺序,相反要倒着排,但是当时就没有想到可以开两个字符串去写,相反一直想的是开一个队列,在队列中来回存元素,但是队列只能改变端无法向中间插入元素。

2024-08-04 13:06:41 572

原创 2024暑期训练第四周周报

主要原因自己也总结了一下:本周比赛中有很多题都是图论的知识(在比赛中可以看出要用什么知识点去解决,但是就是写不出来),但自己跟队友对这个方面涉世未深,只能眼睁睁地放弃那道题,赛后也有过想去补题的想法,但是学的太烂,对于很多图论的知识点都是囫囵吞枣的去学,(在看课的的时候,会有很多地方不太能转的过来,主要还是自己的用心程度不够,没有学不会就要一直学的精神,这点一定要改正!),并没有很好的理解。下周一定要恶补一下图论的知识。还要给自己一个警告:该发展一个适合的运动,多锻炼锻炼了,不然三天两头的生病,属实误事。

2024-08-04 13:06:01 275

原创 2024暑期训练第三周周报

总的来说呢,在每一场比赛都能发现自己的不足,也明知自己和别人有着巨大的差距,自己也在慢慢的去弥补,相信先天的不足可以通过后天的努力去弥补的。这周也确实做到了自己上周周报中说的,认真完成本周题单,经过一周的学习,也会写一些简单的dp,但是复杂的动态转移方程还是需要不断去连,本周的练习赛也让我知道了自己对dfs和bfs的不熟,经常会想不到用他俩解题。允许自己走得慢一点,但是让自己走的每一步路都做数。在周六的分享会上,发现别人会把自己再补题过程中学习到的新的知识去进行梳理和总结,希望下周自己也可以做到。

2024-07-28 19:57:57 311

原创 暑期训练第三周题单完成情况(线性dp、背包问题,区间)

所以如果继续放在左边则是dp[i][j+a[i]]+a[i],放右边则为dp[i][abs(j-a[i])]+a[i](实际上数组下标不能为负,所以当右边大于左边的时候,天平就调换左右),不放则为dp[i-1][j]。dp问题,但是与普通的dp不同的是它本身是一个环,所以在第一个点和最后一个点上要注意,在第一个点的时候dp[i][j]+=dp[2][j-1]+dp[n][j-1],在最后一个点的时候dp[i][j]+=dp[1][j-1]+dp[n-1][j-1];最后输出dp[n][m]。

2024-07-28 19:42:30 1159

原创 SMU Summer 2024 Contest Round 7补题情况

看过题解后发现,字符串在排序的时候,并不是按照初始的方式排序,而是要按照a+b<b+a的方式去排序,然后剩下的就要dp了,但是要是正向排序的时候,还是会发生我上面犯得错误,所以要倒着遍历,dp[i][j]表示在后i个字符串中取出j个字符串字典序最小的结果。按照题目的意思去写就好,但要注意如果每次反转都用一次reverse()函数的话,最终会超时,所以就只在最后一次确定是否要反转,如果当前输入了奇数个1的时候,那么加到字符串前面的字符加到后面,本身加到后面的字符添到前面。但是实际上,如果遇到。

2024-07-27 13:48:05 633

原创 SMU Summer 2024 Contest Round 6补题情况

1234中1,4出现4次,2,3,12,34各2次,23,123,234各一次;因此发现规律,实际上从单个数字开始,头尾的两个数字出现的次数是1<<k(k=s.size()-2),中间的数字为k/2次,当数字每增加一位k就要除2,以此类推。将一个无向图变为有向图,然后查找每一个节点的度数,找出最大度,从最大度的结点开始bfs,每一个节点不能连接两个相同的颜色,且每一个节点在bfs的时候都要知道颜色是从1开始进行标记的。每一次枚举的时候,遇到1或者是最后一位的时候就进行断开,并将当前的数字进行加和。

2024-07-23 15:14:08 1186

原创 2024暑期训练第二周周报

总的来说,这周的状态没有上周的好,没有上周的状态那么好,开始犯懒,自己也在努力克服和调整,比赛打得也还是那样,每次比赛遇到需要dp的题总是做不下去,将常发生写一半自己思路就乱掉的情况,至今也没有在比赛中解决一道dp的题,但是慢慢练,相信总有一天自己可以独立完成掉dp的题。对于题单,由于自己第一周的题单没有完成,所以这周将大部分精力放在了写上周的题单上,本周的两个题单并没有很好地完成,只是每个都写了几道题,对于本周要学习的知识点只是学了个大概,没有认真去学,希望下周不要发生这种情况了。

2024-07-21 21:15:44 244

原创 河南萌新联赛2024第(一)场:河南农业大学补题情况

由于他在遍历城市的时候是按顺序遍历,所以跳跃着去下一个城市,我们选择开一个优先队列,然后当队列中的元素大于k的时候(也就是使用完所有神力之后,就要使用生命力了),但是此时将队列中最小的元素踢出,并用生命力减去最小的元素,当生命力小于等于零的时候,这个国家和他往后的国家都能进行游历。还要注意如果t的值比n更大的时候,只需要进行n次循环,在多次的循环就是重复了,无需进行。这个虽然看懂了题解中给的解释,但是对于题解中的代码未能理解,所以未能补上,最近几天在研究一下,将他给补上,感觉不是很难。

2024-07-21 21:01:01 330

原创 2024 暑假友谊赛 2补题情况

再交C题的时候发现了一个之前都没有见过的报错(Idleness limit exceeded on test 1),然后就不知道该如何去改。赛后查了一下是测试用例 1 的执行过程中出现了长时间的闲置状态,超出了平台设定的空闲时间限制。简单来说就是要去优化算法,使代码执行相同程序的情况下使用时间更短。

2024-07-21 17:26:31 608

原创 四月第二周周报

y1=m/w+1;y2=n/w+1;if(y1%2!=0){x1=m%w;if(y2%2!=0){x2=n%w;y1-=1;x1=w;y2-=1;x2=w;return 0;

2024-07-20 16:10:04 395

原创 SMU Summer 2024 Contest Round 5补题情况

比赛的时候,读完题就想到使用二分查找体重的临界值,但是在写的时候发现,无法确定边界的变化(例如将边界值上调时,大人的正确的个数可能会减少,而小孩的个数可能会增加,但总体上的个数无法判断是增大还是减小,所以无法使用二分)。不等的时候,就去从i开始不断往后查找,当找到第一个a[i]=-1的时候,将x的值赋给a[i]。实际上在查找离i最近的那个等于-1的值可以使用并查集,相当于用并查集去查找他的父节点,然后标记它的父节点(每个点只能做一次父节点),这样可以节省很多时间,无需一个一个去遍历。注意数组不要越界就好。

2024-07-20 13:02:13 987

原创 7.16SMU Summer 2024 Contest Round 4

所以sum[j]-sum[i]=k*x+j-i,变形可得(sum[j]-j)-(sum[i]-i)=k*x;然后就想办法优化,受到求素数的启发,想出来实际上每个数有多少个正因子,不如看成每一个数i(1

2024-07-16 20:22:20 474

原创 2024暑期训练第一周周报

通过本周的比赛发现自己一个很大的问题,就是对于问题能够想出来解法,但想出来的解法绝大多数的时候会面临超时,但又不能想出很好的办法去解决该问题,所以只能放弃自己的想法,去看别的题。也深深地发现了自己对于dp的不了解,遇到需要dp处理的题往往会没有思路,补题的时候看题解都需要看好久才能理解为什么这样做。关于dp,还需要去系统的学习。本周由于比赛打得太烂,学长拉的题单也只写了二分的大部分,链表还没开始学习,题单也没去写。只能说比赛依旧打的很烂,但每场比赛都能发现自己的不足,慢慢去练,慢慢提高自己。

2024-07-14 18:55:39 247

原创 7.13补题详情

当n为偶数,m为基数时,现将n*(m-1)列填满,而后将会转化为第一种情况,但此时要注意,该矩阵的大小已经改变了,需要考虑k的范围;当m为偶数,n为奇数时,将第一行填满即可转化为第一种情况,也要注意此时矩阵的大小发生改变。n,m不可能同时为基数。将每一个没有空调的位置都设为最大值,而后像从左往右遍历一遍,f[i]=min(f[i],f[i-1]+1),再从右往左遍历一遍,f[i]=min(f[i],f[i+1]+1),(因为当前位置的最小值无非就是左边或者右边的空调提供的,所以遍历两次就可得出答案)。

2024-07-14 18:39:16 221

原创 7.12总结

通过推导可以发现,由题可知,n=m*k+m(即为除数相乘,再加上余数,由余数跟其中一个除数相同所以都设为m),所以推到可知,n%x==0时,n/x-1即为答案,将每一个答案相加。宣传三个边界值i,j,k,将其分为四各部分。聚记录每次引爆所有草堆最少需要的奶牛数目,如果大于题目中所给定的数,就缩小右边界,反之缩小左边界,最后输出l,即可。就是先寻找字母相同且连续的子序列中的元素个数,当元素个数f比k大的时候,那么上述f个数对应的攻击值就要进行排序,然后从大开始加,当加到k个数的时候,剩余的数将被省略掉。

2024-07-14 17:44:01 434

原创 七月第二周周报

实际上,可以将其大的图案分成九宫格来看,每个九宫格的中心都会输出".",其余的都是”#“,然后再将四周的八个小格子,看成每个独立的小九宫格,将每一个小九宫格的中心变为”.",依此类推。为保证结果最大,则可以将原数组进行排序,也将要替换的数组进行排序,将原数组中最小的数用替换数组中最大的数进行替换,知道所替换的数组小于原数组时停止替换(确保差值最大),然后进行加和运算。即是将每个数位上的数都对三进行求余,将每一个不能整除的数统计下来,并进行求和,如果求和后的数可以整出三,则整体可以,不能的话分类讨论。

2024-07-12 19:27:05 1034

空空如也

空空如也

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

TA关注的人

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