蓝桥杯每日一题
文章平均质量分 51
一只程序媛li
大学生
展开
-
蓝桥杯每日一题(背包dp,线性dp)
将 1,2,4,8看成一个一个的物品,以完全背包的形式放入。一维形式:f]0]=1;由于二维形式会爆。下面给出写法需要注意的一点是:由于每次只用到前一层循环的数据,当前层j放不下i的位置,也就是j<i的位置,也要更新,因为下一层可能用到这个数据,不更新的话,就都是0了。原创 2024-04-09 21:45:28 · 548 阅读 · 0 评论 -
蓝桥杯每日一题(博弈论)
0 n%3==0 无论先手怎么出,后手都能让剩余的n%3=0,。3)m%3==0 结果每(m+1)一个循环,可以先取余 n%(m+1)。剩下k个,先手必胜。(m+1)|n 先手取x个,后手就可以取(m+1-x)个。最后一定是后手全部取完。若先手先把余数全部取完,先手就变成了第一种情况中的后手。某次后手操作之后,n变成了可以整除的形式,且由于nn的话。原创 2024-04-08 15:18:45 · 295 阅读 · 0 评论 -
蓝桥杯每日一题(快速幂、组合计数)
快速幂就是将a^k看做是a^2^0和a^2^1……相乘。(相邻两个数是平方关系)巧妙的是这个时候k就是多个2^n的组合,也就是可以二进制表示。所以就可以用k的二进制某一位是否为1,判断最后的结果是否乘以a^2^n。错误点:权值不用初始化直接使用a,每次循环将a平方。原创 2024-04-04 15:57:12 · 277 阅读 · 0 评论 -
蓝桥杯每日一题(筛质数、最大公约数)
用的埃氏筛法,st数组保存是否被筛掉,遍历到的st为0的节点就是质数,将其保存。然后遍历所有相邻的节点得到判断是否存在条件中的质数。原创 2024-04-03 17:24:53 · 412 阅读 · 0 评论 -
蓝桥杯每日一题(最小生成树、最近公共祖先、二分图)
看题解做的,是虚拟源点的思想解决 建发电站和连线路两个问题统一的、prim算法:基本思想是每次找离某个连通图(因为有多个发电站)最近的点。这个最小的value的点如果没有和发电厂就让它建发电厂。如果已经和某个发电厂连接,这个点就是最小生成树的组成部分。无论有没连接发电厂,每次找出的最小点都要去更新与其相连的其他结点。在prim循环的时候找最小的dis的点的时候不用担心其本身建厂的dis小于其连通后的dis导致差错。找到某个点的时候一定是其呈现最小状态的时候。原创 2024-03-31 17:47:04 · 684 阅读 · 0 评论 -
蓝桥杯每日一题(floyd算法)
如果两个城市之间有铁路t1=1,公路就会t2>1,没铁路的时候t1>1,公路t2=1。也就是公路铁路永远都不会相等。我们只需要计算通过公路和铁路从1到n最大的那个即可。floyd是直接在数组上更新距离。不需要新建dis数组。另外一定要记得把邻接矩阵初始化为无穷。原创 2024-03-27 21:23:58 · 344 阅读 · 0 评论 -
蓝桥杯每日一题(SPFA)
用另外一个数组存杂交结果,初始结点都为0,遍历所有杂交结果,只要可以减小就加入到队列中。if条件是距离小于两个max,因为必须要保证其父辈已经产生。另外注意使用普通队列即可;和dijkstra中的st数组不同,这里只用来判断是否是在q中。所以所有的初始结点都要st为1,pop的时候将结点st置为0.原创 2024-03-27 19:28:00 · 231 阅读 · 0 评论 -
蓝桥杯每日一题(拓扑排序)
/3696构造有向无环图有向无环图才有拓扑排序,有环的话不能进行拓扑,因为会导致环中一个结点(环的入口位置)其入度永远无法变成0。先判断图是否可拓扑序,如果本来就不能就直接No,可以的话。可以按照拓扑序。确定某个边的方向的时候,只要其起点拓扑序小于其终点即可。要注意认真:YES格式写错了看了半天;一直报错,但是感觉没错,看不出来了。原创 2024-03-23 22:16:01 · 738 阅读 · 0 评论 -
蓝桥杯每日一题(dfs)
1、要注意以每个点为起点都要dfs2、自己用1-n 1-m存数不知道为什么报错3、自己写的时候参数写对了 层数,来源的位置,前面累计的数4、边界:0-k-1实现了k次,到k的时候,直接将res加入set5、否则则遍历4种可能,6、自己写的时候没有想清楚,边界应该怎样处理,因为每次都是res加完之后找下一层所以到了最后一层的时候其实前面已经结束了。842排列数组求数字的全排列;在一个地方:cnt,在递归调用的时候是dfs(cnt+1),而不是cnt++。也就是不能在这一层修改cnt的值。原创 2024-03-21 23:29:55 · 435 阅读 · 0 评论 -
蓝桥杯每日一题(BFS)
开始思路错误点:在用拉链法保存关注信息的时候,因为要看一个用户发的有多少转发的,所以要以用户为坑位,所有关注这个坑位的用户为链表。(开始弄反了)e数组存某个用户的idx,ne是某个节点在链表上的下一个,h是坑位。st状态数组的参数是用户,而不是idx//844走迷宫自己是用pair并且second放走的步数,内存超限了。下面是自己的做法y做法:直接使用一个二维数组存某个坐标到达的时候走的步数。原创 2024-03-17 20:42:15 · 908 阅读 · 0 评论 -
蓝桥杯每日一题(Tire树,字典树)
思路:利用前缀数组S(异或)的思想,要求某个区间的数的异或和,可以用区间的两个端点的S值进行异或。(这个地方注意边界)。怎么在限制范围内求两个Si值的异或的最大值呢。利用字典树的思想,让字典树的cnt数组保存这个结点出现的次数。在二叉树中找结果(具体做法就是从高位到低位尽量找和当前的数不同的分支),可能存在找到不在区间内的S值。我们可以从1到n遍历,删掉没有用的,而且后面也不会用到了。debug :res*=2+1 和 res=res*2+1不一样,后者等于 res=res*(res*2+1);原创 2024-03-15 21:22:40 · 448 阅读 · 0 评论 -
蓝桥杯每日一题(kmp)
求一个字符串的所有前缀的循环节出现的最大次数。也就是最小循环节kmp算法求循环节;将原串移动,移动后我们得知,四个黑色大括号完全相同。在下图所示的事例中,原串只有两个循环节,加一个红括号。k3加一个红括号的长度就是kmp中的next数组。字符串长度-next即为循环节长度。下面的串向右移动的长度为n-next,而next是最大的前后缀相等的长度。所以移动的长度K是最小的循环节。上面我们做了什么事:我们根据字符串的next数组的最大值,将其向后移动,使得前后缀重合。原创 2024-03-10 15:22:01 · 2260 阅读 · 0 评论 -
蓝桥杯每日一题(哈希、单调队列)
二进制所有的可能保存进哈希表,三进制找出所有的可能判断哈希表中是否有数字。注意一种情况就是修改完之后出现前导零。直接continue;学到了,某些条件的限制不一定要在循环条件上,可以直接在循环体内。原创 2024-03-09 19:06:27 · 419 阅读 · 0 评论 -
蓝桥杯每日一题 (递推、递归、)
后面if条件判断很巧妙,只要有一种成立就不管另一种了。原创 2024-03-07 21:21:34 · 442 阅读 · 0 评论 -
蓝桥杯每日一题 (双指针)
while循环的双指针,只要遇到一个x,就让y向前探索。不是就加加。使用set存储,最初的时候,每次更新ans都是用set的size-1,但是这落下了一种情况,while结束的条件一种是y遇到了set中重复的数,一种是y到头了,所以用y-x去更新值。原创 2024-03-06 15:33:00 · 358 阅读 · 0 评论 -
蓝桥杯每日一题(二分)
暴力方法改了40分钟,好在ac了思路:依次枚举所有字符(外层循环);第一个没有注意的点:没有加j的中间那层循环,直接用的while,这样会导致i后面可能有多个j的位置与i匹配,这样按着第一个匹配的匹配下去了,后面无法匹配上j就一直向后走。导致缺失情况第二个:本质上还是一样的问题,while结束后,也就是某个匹配的结果看完了,要注意把开始匹配的位置还回到i。二分的本质没理解透:不是看不到有序的东西就不能用二分去做。可以用二分的本质是进行完某次判断可以进一步缩短结果的范围l=1;r=n;原创 2024-03-04 19:31:15 · 585 阅读 · 0 评论 -
蓝桥每日一题 (差分)3月3号
自己做TLE:奈何想不出怎么用差分y的做法:根据本题特点,不去纠结中间具体加了多少,利用差分,只关心左右边界;最后巧妙地用!!来进行强制类型转换,输出0,1;(太厉害了)原创 2024-03-03 15:18:40 · 1697 阅读 · 0 评论 -
蓝桥每日一题(前缀和差分)
/796子矩阵的和。原创 2024-03-02 18:22:34 · 225 阅读 · 0 评论 -
3956截断数组
先判断是否是2ave,是就把之前发现的ave的个数加到总数上。微妙地避开了 0 0这种情况。原创 2024-02-27 17:15:53 · 119 阅读 · 0 评论