百度之星刷题
文章平均质量分 62
风筝有风了吗
这个作者很懒,什么都没留下…
展开
-
数字串(权值思想和字符串哈希)
首先我们考虑加号放在哪里会使相加的和最大,我们不妨假设是一个大的字符串加上的都是单个的数最大。比如abcde,我们要放置两个加号,我们假设a+bc+de最大,那么我们可以想一想会不会有比它更大的,最大字符串位数是三位数的。我们可以举一个例子,a+b+cde,我们把两个数相减,a+b+cde-(a+bc+de)=c*100+b-b*10-c=99c-9b>0,所以无论我们认为哪一个字符串分割之后可以是多个不是单个字符的数最大,我们总能找到一个符合条件的更大的。4.a=b,b=c,c=d,d>e,两式相等。原创 2023-09-24 13:42:00 · 156 阅读 · 0 评论 -
跑步(排序和动态规划单调栈思想)
【代码】跑步(排序和后缀和)原创 2023-09-22 01:55:51 · 84 阅读 · 0 评论 -
怪兽(二元二次方程计算)
用于检查给定的u值是否满足方程组的整数解条件。它首先检查两个条件,确保两个方程中的y和x都是非负的。然后,如果n2等于n1,它直接计算x和y的值,并检查x+y+u是否等于p。如果n2不等于n1,它会计算y和x的值,并再次检查x+y+u是否等于p。程序通过遍历查找的方式,在[0, p]的范围内搜索u的值,使得上述方程组有整数解。如果存在这样的u,那么程序会输出u的最小值和最大值;其中,x, y, u是未知数,p, q, n1, n2, n3是已知的常数。没啥好说的, 枚举n3,验证,结束!原创 2023-09-22 23:24:30 · 199 阅读 · 0 评论 -
夏日漫步(简单bfs)
简单的bfs,就是相同的亮度的砖块可以直接瞬移到下一块,这是和经典bfs的不同之处,如何处理相同亮度的砖块作为下一步的移动目的地成为这道题的关键点。在这一点上,我用了一个vector数组存储相同亮度的砖块,然后在读取存储的vector去写入ne数组,ne数组代表当前下标可以移动到的下一个相同亮度砖块的下标。原创 2023-09-20 23:00:45 · 273 阅读 · 2 评论 -
糖果促销(树状结构)
我们可以贪心的想,当参与糖皮换糖的糖果越多,那么花费将越少,购买的糖果就会越少。参与糖果换糖的数量一定可以构成完全p叉树,那么问题就可以转化为那么在k的结点范围内构成的最大的完全p叉树即是最大糖果参与数。那么叶子结点就是我们需要买的糖果数,而未参与糖果换糖的肯定是需要我们单独出钱买的,加上就是我们需要买的所有糖果数。代码的主要思路是将参与糖皮换糖的糖果数量构造成一棵p叉树,树上的叶子节点是需要购买的糖果数。程序通过计算最大能构成的满p叉树的节点数和叶子节点数,来确定需要购买的糖果数量。原创 2023-09-19 23:10:39 · 193 阅读 · 0 评论 -
星际航行(贪心算法,我感觉二分也是可以的,但是没有实现思路)
我们可以考虑一维坐标下,当只有三个飞船的时候我们可以发现只有当两边的飞船向中间的飞船移动移动可以使总体移动距离最少,推广到n个飞船,也是都聚集在中点的坐标可以使移动距离最短。在x轴,y轴和z轴排列直线时,那么飞船移动后的其他两个维度必然相等,也就是以各个维度的中间点作为聚集点。//需要注意当n为偶数我们取arr[n/2]为中间点,其实arr[n/2]和arr[n/2+1]之间的所有点都是可以的。//arr上的各个点向中间点靠拢的移动距离之和。//arr上的各个点到point点的距离之和。原创 2023-09-18 23:06:31 · 165 阅读 · 0 评论 -
第五维度(二分及前缀和)
我们首先用二分去枚举时间点,使用check去检查这个时间点是否能满足要求,即无论删除哪一个人始终在这个时间点下的贡献度之和都大于等于m,那么在这个时间点肯定是能达到五维世界的。这段代码是一个解决特定问题的程序。它的目标是确定一个科学家群体能否在一定时间内理解五维概念,并找到理解五维所需的最短时间。经过昨天的折磨,今天写这个二分加前缀和真的得心应手,嘿嘿,小小得瑟一下。函数的实现,它们共同决定了找到最短理解时间的效率。这个程序的核心是二分查找算法和。时间复杂度为O(NlogN)原创 2023-09-16 23:40:18 · 62 阅读 · 0 评论 -
蛋糕划分(二维前缀和,二分,位运算)
这段代码是一个切割蛋糕的问题,其中蛋糕被表示为一个二维数组,每个元素代表蛋糕的一部分。目标是找到一种切割方案,使得切割出的蛋糕块的数量不超过k,并且每块蛋糕的重量最大不超过m。代码的主要思路是使用二维前缀和来快速计算蛋糕子矩阵的重量,并使用位运算枚举所有可能的横切方案。对于每一种横切方案,代码使用动态规划来确定竖切的位置,以最大化每块蛋糕的重量。第一想法是dfs,但是dfs枚举当前位置切与不切,以及每次枚举都要进行计算当前枚举的的蛋糕的最重的蛋糕块,时间复杂度可以达到。最后,代码输出最小的m值。原创 2023-09-16 14:29:25 · 278 阅读 · 1 评论 -
公园(复习邻接表法表示图以及bfs)
可以考虑将两个人的位置看成一个状态,但是分析一下,40000*40000会tle,所以就没有写那种方法。这个方法是通过bfs分别求出地图上的每个点到我们bfs对象的最短路径。然后我们枚举每一次小度和度度熊的相遇结点,计算出体力消耗,取最小值即可。原创 2023-09-14 22:48:41 · 63 阅读 · 1 评论