蓝桥杯算法
文章平均质量分 72
学不完算法
本科智能车辆专业在读,分享平常的学习和竞赛经验,如有不恰当的地方,也希望大家能够给予指正。
展开
-
Acwing.503借教室 -- 二分+差分
我们需要找到第一个不满足的订单编号,对于2个模板都可以使用,找左边类的右边界的下一个订单或者右边类的左边界,需要注意的是索引和订单编号的切换,包括天数也是从1开始。下面我们一起来看看题解。其实也非常好理解,原因就是我们需要保证有的数据二分完能有r == m的结果,因为这里二分的模板是找右边类的左边界,如果不存在右边界,是不是索引应该是m,整个给的数据量的最大索引是m-1,我们需要能有m,所以初始化是m。这道题表述的是将给出几组数据,包括第i天可租的教室数量,m个订单的信息,包括教室数量,开始和截止日期。原创 2024-08-06 20:42:19 · 533 阅读 · 0 评论 -
二分模板--Python(Acwing.1227分巧克力)
第八届蓝桥杯省赛C++ A组/B组第八届蓝桥杯省赛Java A组/B组/C组在尝试解决这道题前,首先需要明确二分的概念,二分的目的是快速找出需要的那个值,正常顺序遍历所需要的时间复杂度是O(n),而二分的时间复杂度是O(logn)。二分的代码实现思路是用数据的中间索引来进行check函数判断,然后更新数组的左右边界,这样一直更新到数据中只有一个数据时,这时候就得到了我们想要的数据。那在什么情况下可以使用二分呢?原创 2024-08-03 23:38:27 · 1110 阅读 · 0 评论 -
Acwing.845八数码--Python(BFS)
分享八数码问题的题解以及自己的一些代码注释。在一个 3×33×3 的网格中,1∼81∼8 这 88 个数字和一个x恰好不重不漏地分布在这 3×33×3 的网格中。在游戏过程中,可以把x与其上、下、左、右四个方向之一的数字交换(如果存在)。例如,示例中图形就可以通过让x先后与右、下、右三个方向的数字交换成功得到正确排列。现在,给你一个初始网格,请你求出得到正确排列至少需要进行多少次交换。原创 2024-08-03 21:53:26 · 295 阅读 · 0 评论 -
AcWing.9分组背包问题--关于先遍历组中物品还是先遍历体积的讨论
题目:有 NN 组物品和一个容量是 VV 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vijvij,价值是 wijwij,其中 ii 是组号,jj 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。第一行有两个整数 N,VN,V,用空格隔开,分别表示物品组数和背包容量。原创 2024-08-02 23:59:17 · 655 阅读 · 1 评论