- 博客(52)
- 收藏
- 关注
原创 十六届蓝桥杯C++组备赛必看:高频算法与核心知识点梳理
算法学习没有捷径,但正确的备考方向能让你事半功倍。建议将本文提到的每个算法模板手写实现一遍,深入理解其中的细节。刷题过程中遇到问题,欢迎在评论区留言讨论!立即行动:将本文提到的每个算法模板手写实现一遍,你会发现不一样的细节!
2025-03-28 21:45:26
990
4
原创 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(部分题解)
一年一度的🏀杯马上就要开始了,为了取得更好的成绩,好名字写了下前年2023年蓝桥杯的省赛真题,感觉题目还不错(好难)为此来写篇博客重温一下这几个题。也可以帮助一下第一次参加蓝桥杯的新手小白更好冲击省一。2023年的题目感觉比我们2024年的题目难(还好我不是去年参加的),不过🏀杯声名远扬,打打暴力可能就能获奖省一,从此成为同学眼中的“大神只写了5个题,剩下的再看看。。。蓝桥杯不用想着把正解搞出来,其实暴力跑跑已经可以超过绝大部分人了(在弱省),好好备战,补药让300块打水漂。
2025-03-26 19:26:51
4763
1
原创 【C++STL之vector】vector容器浅析
知其所长,明其所短,用之得法”—— 掌握vector的动态扩容机制、连续存储优势,规避迭代器失效陷阱,根据场景灵活选择操作方法,你就能在C++的江湖中,凭借vector这把利器所向披靡!
2025-03-05 18:29:01
1091
原创 【C++ STL】vector容器详解:从入门到精通
vector是C++标准模板库(STL)中序列容器的代表,本质上是一个动态数组。它能够根据需要自动调整大小,支持快速随机访问,在尾部插入/删除元素效率极高,是C++中最常用的容器之一。核心特性动态扩容:内存空间自动增长(默认翻倍策略)连续存储:元素内存连续,支持指针偏移访问随机访问:O(1)时间复杂度访问任意元素尾部操作高效:push_back/pop_back的时间复杂度为O(1)vector凭借其高效的随机访问和动态扩展特性,成为处理动态数组需求的首选容器。
2025-02-03 19:17:30
561
原创 组合数:从基础理论到高效算法实现
组合数的计算既是经典的数学问题,也蕴含着丰富的算法思想。在算法竞赛中也常常出现,要好好理解组合数的思想,感受下组合数的魅力。
2025-02-03 15:28:20
1350
原创 2024 11.14训练赛
这次训练赛难度中等,主要都是前段时间CF里面难度中等的题目。这次自己写的不是很好,有几题有思路,将近完成代码,但是最后没有写出来,有点可惜。总体写的不是很好。主要考察的点就是思维的运用,还有一些简单的类似二分算法。继续学习~~~
2024-11-20 19:31:16
641
原创 牛客小白月赛99
因为小明的魔力可以清除一个方向上的障碍,所以在一点来看的话,要想到终点, 小明必须清除六个方向上的某一个方向才能到达目的地。标记完之后,再从起点DFS,如果小明走到了一处被六个方向其中一个标记的话,就说明能到达终点,因为这一方向是的障碍都被清除了。我们可以发现,往后眨眼的秒数都是合数。模拟一下,当n为6的时候,能选取的值为1,2,3,4,5.可以发现取4的时候最大。当n为7的时候可以选取的数字为1,2,3,4,5,6.可以发现取4的时候最大。题意很好理解,就是最少多少秒拍照,学生们的眼睛都是睁开的。
2024-08-24 13:33:29
733
1
原创 河南萌新联赛2024第(六)场:郑州大学
暑假的最后一次萌新联赛,郑大的出题还是比其他学校的难些的。不像之前的几场有特别简单的签到题。题目还是比较不错的。
2024-08-22 17:30:08
718
3
原创 牛客小白月赛--切割01串 2.0
感觉是一道比较好的线性DP的题,不是很简单感觉。感觉对于没怎么学过动态规划的人来说,这一题还是比较难的,只能多刷刷题,早日能自己写出来这种题。
2024-08-19 19:15:11
1114
原创 博弈论题集
博弈论是算法比赛中比较常出的一类题型,觉得掌握的不好,平时也不会写,经常要花费很长时间也写不出来,所以整一个博弈论题集来收录一下那些博弈论的题。
2024-08-15 11:23:44
878
4
原创 树状数组基础知识以及相关习题
树状数组和并查集一样,树状数组和线段树都是算法竞赛中常见的数据结构,他们通常结构清晰,操作方便,应用灵活,效率很高。
2024-08-06 17:28:33
978
1
原创 小红组比赛(bitset,分组背包)牛客“葡萄城杯”
这是昨天牛客的一道题,刚开始拿到这一题的时候就想到用dp的方法,之前写过用dp的方法求怎么选使总和最大,最大是多少。我们可以发现第i位出现的1就代表这个数组能有某种选择的方法让总和变成i,我们数一下可以发现,一共是出现了7个1,所以,这个样例一共就只有7种不同的选择结果。也是用到了分组背包的想法,但好在这一题的范围不是很大,可以过去,如果范围再大一点,估计就不好说了。对于这种很多种选择的方法的,bitset就可以很快的把所有方法都整理起来,非常好用。: 每一组选择最小的一个的选择方法。
2024-07-29 14:53:41
494
1
原创 河南萌新联赛2024第(二)场:南阳理工学院
这场比赛里面出到了很多的题,都是需要很多的时间去写,主要考察到了代码的实现能力,与codeforces里面的题有些差距。codeforces打多了还是有点不习惯的。题挺好的,尤其是H题感觉很考代码实现能力与STL的使用熟练度。多写写这样的题还是对我们很有好处的。只不过前三题都太水了,没有一点难度。
2024-07-25 11:44:32
1750
4
原创 异或的基本性质
相同为0(1 ^ 1 = 0 && 0 ^ 0 = 0), 不同为 1 (1 ^ 0 = 1 && 0 ^ 1 == 1);异或是一种二进制的位运算,符号以 XOR 或 ^ 表示。
2024-07-19 11:04:40
265
原创 河南萌新联赛2024第(一)场:河南农业大学
由数学知识我们可以知道当被除数越大,除数越小的时候值最大,所以我们尽可能让第一个数最大,但是由于t次移动的限制,我们可能做不到将第一个数变成最大的,因此我们用一个数组来存放每个数字移动到最左边的步数,再将数组排个序,在t允许的情况下,我们首先考虑最大的移动。所以当n为17时,结果是5;这一题说实话,没咋看懂,图的部分还没咋学,但是凭借我闯荡牛客那么久就知道这题不难,所以我直接就对半砍,然后再相乘。将数组先降序排序,看最大的是否为1,如果为1的话就进行2操作,否则进行1操作,最后再遍历一遍输出总和。
2024-07-17 20:13:04
1120
原创 博弈论题集
博弈论是算法比赛中比较常出的一类题型,觉得掌握的不好,平时也不会写,经常要花费很长时间也写不出来,所以整一个博弈论题集来收录一下那些博弈论的题。
2024-07-16 17:59:31
353
原创 Codeforces Round 958 (Div. 2)补题
本题在赛时卡的时间比较久,把这题想复杂了,导致WA了两次。后来看明白之后就是将n每次转换成k-1个1,到最后分不出来k-1个1直接一次就能分完,即结果加一;区间里面,将区间里面的字符串变成一个字符,这个字符是0或1,到底是哪个,图片中有详细描述。题意:给一个数字n,写出一个序列,要求递增,并且两项之间或运算为n。题意就是给出一段字符串,字符串里面只包含0,1。思路:将字符串里面连续的0全部转化成一个0,再比较0,1个数。思路:利用二进制的特点,将0,1填入,最后逆序输出。
2024-07-16 11:27:19
677
原创 离散化的使用
离散化本质上是一种哈希,它在保持原序列大小关系的前提下把其映射成正整数。它可以有效的降低时间复杂度。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。如果数字特别大的话,例如10910^9109的话,那么数组的空间就远远超过了题目所要求的空间,我们这时候就要用到"离散化"这个技巧解决这种问题。
2024-07-14 11:29:29
644
原创 Clock and Strings
输入t1≤t≤5940行,每行4个整数abcd1≤abcd≤12,表示钟面上ab和cd两条线段的四个端点所对应的刻度,问这两条线段会不会在钟面上相交。如果会,则输出YES,不会则输出NO。
2024-05-20 16:24:58
1012
原创 2024CCPC全国邀请赛(郑州)暨第六届CCPC河南省赛补题
题意:输入两个数字,n,d。有一个幸运数字,1~9的数字至少出现一次,且数位为d的至少出现两次,n*k等于这个幸运数字,问k为多少。当时比赛的时候脑子抽,知道用二分,一直在那二分x的大小,一直不会写,搞了好久也没弄出来,不然感觉能再A一题。题意:求一个五位数是不是合数,如果是直接输出,如果不是随意排列求出一个合数,注意0不能当第一位。思路:直接输入五个字符,求0或者偶数,第一次交WA了一发,发现没有处理前导0,改了一次AC了。思路:用二分答案的板子,二分k,找到一个相同的k作为check的条件。
2024-05-17 16:13:24
1504
原创 CCPC训练赛题解补题
对此,我们可以先判断一些条件,例如当w<b的时候一定输出-1,当a>w的时候一定输出0.000000000,这是两个特殊情况,比较容易判断。当c的长度,也就是轮子的高度为0的时候,如果我们能将车子弄起来,并且车子的另一端没有碰到河水那么我们就一定能正常行驶,这时轮子的最小值就是0.000000000。题意:这一题看着很难,还给出来几何图形,直接从气势上就吓到我们了,其实赛后补题的时候我们去写能发现其实也不是很难,考察到了对几何图形的掌握,有数学思维在里面。(原题链接点击这里)(原题链接点击这里)
2024-05-04 19:39:57
811
1
原创 L. Palm Island
L. Palm IslandToph is playing a card game. She has n𝑛 cards and each card has a unique number of 1,2⋯n1,2⋯𝑛. In this game, Toph can operate the deck of the cards. We may wish to assume that the cards from the top to the bottom of the deck are p1,p2,⋯pn𝑝
2024-05-04 17:16:25
1056
原创 背包问题(多重背包问题 二进制优化)
但是聪明的小杰(就是我)可以事先把硬币分成四堆,分别是1,2,4,3个硬币,我们只需要选择1+2+4就能选出来7个硬币。这一题多重背包问题和前面的01背包,完全背包问题有所不同,运用到了更好的思维方法如果数据比较弱的,直接暴力就可以过,但是如果数据较大肯定就是过不了的。一个物品有很多,我们有很多很多的选择方法,可以选1..2..3...n个。我们可以讲si个物品都罗列出来,在用01背包的方法来写,就是在原来的基础上再加上一层循环,也不难理解。第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。
2024-04-28 22:30:02
1090
1
原创 排序算法之归并排序
在我平时的练习与刷题当中我基本不用归并排序,快速排序这类排序,直接就是一个sort排序,简单了事。但是今天的训练赛当中遇到了一道题,它使用了归并排序的分治思想。正好有些遗忘,今天来复习一下。所谓归并操作就是将两个有序的序列通过操作变成一个有序的数列。这种方法十分高效,时间复杂度为O(M+N)M+N为两个子数组的元素和。
2024-04-25 22:57:40
246
1
原创 AcWing(4951. 整理账本)STL
4951. 整理账本 - AcWing题库账本中记录了一种产品的 n𝑛 条买卖记录。B p qS p q任何卖出记录的交易价格都高于任何买入记录的交易价格。也就是说,卖出记录和买入记录的交易价格相同的情况。现在,请你对账本进行整理,对所有交易价格相同的记录进行合并,使得每个交易价格只存在一条记录,新记录的交易数量等于所有参与合并的旧记录的交易数量之和。
2024-04-23 10:10:09
792
原创 对于STL的学习(洛谷P3613二维map)
每个寄包柜格子数量不一,第 i 个寄包柜有 𝑎𝑖(1≤𝑎𝑖≤1e5)个格子,不过我们并不知道各个 ai 的值。对于每个寄包柜,格子编号从 1 开始,一直到 𝑎𝑖ai。显然我们不能开数组暴力,要开一个 𝑎[1e5][1e5]的数组,肯定MLE。已知超市里共计不会超过 107个寄包格子,ai 是确定然而未知的,但是保证一定不小于该柜子存物品请求的格子编号的最大值。我们可以用STL里面的map,再优化一下,二维map正好可以存下每行每列map<pair<int,int>,int>;
2024-04-22 22:15:56
413
原创 P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles
咱们来看这个1,怎么走最近,肉眼很容易看出来7->8->1呗,so so easy ,那是不是从第二层最大的往下挑选一个再往下加,这不就是把整体问题转化成局部问题的典型DP问题嘛。我们看走到第四层的7怎么走。到7只有8或者1可以到,所以我们就要比较两者从开始第一层到自己权重谁的大,再决定用它们两个其中的谁来到达7,DP秒了秒了。啊啊啊,好麻烦怎么写,完了又不会了,那么多步怎么走,别急,让爱因斯坦.中国分坦来解释一下。在上面的样例中,从 7→3→8→7→57→3→8→7→5 的路径产生了最大权值。
2024-04-21 20:57:16
286
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人