
前缀和
文章平均质量分 53
sigd
这个作者很懒,什么都没留下…
展开
-
小美的平衡矩阵-美团2024年春招第一场笔试
解释下构造前缀和数组语句:sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];),至于矩阵中0和1的数量,使用二维前缀和数组求得。思路:暴力枚举所有的i*i矩阵,复杂度为O(原创 2024-05-01 11:12:49 · 333 阅读 · 0 评论 -
小美的蛋糕切割(美团2024届秋招笔试第一场编程真题)
题目分析:切蛋糕问题切记可以横着切,也可以竖着切。本题目需要快速求得两个矩形的和,可以用二维前缀和数组解决。然后枚举一刀切的位置。解释下:sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];原创 2024-01-10 11:05:35 · 649 阅读 · 0 评论 -
【2021】腾讯秋招技术岗编程 01串的价值
此方法虽然AC,但(1)发现题目数据比较弱,(2)无法公式证明算法的正确性,因此解法极大可能存在漏洞,(3)优点是复杂度较低。根据题意,在草稿纸上模拟发现,当连续长度为X时新增一个就会增加X+1,因此考虑尽可能保留相同的数字会让结果更大。进一步考虑也存在如111100000这类情况,因此考虑可以枚举这个分界点,左边保留相同的数字,右边也保留相同的数字。用前缀和找寻相同数字的最大值。得到如下代码:#include <bits/stdc++.h>typedef long lon...原创 2022-04-18 22:46:53 · 2099 阅读 · 6 评论 -
CF 780 F2. Promising String (hard version)
题外话:本次考试基本都是数据结构题目。博主感觉做起来很顺......当然WA是不可避免的......题目大意:一个字符串只包含+ 和 -两种字符,满足要求的子串或者是+和-数量相同,如+-,++--。或者是-号与+号的数量差为3的倍数,因为两个-可以升级成promising一个+。 这样问题就是求某个子串,其中-号数量减去+号数量是3的倍数。解题思路:我们把+号看成-1,减号看成1。这样问题就变成求一个序列中有多少个子段,其“子段和大于等于0且为3的倍数”。本题目还有个F1 (ea...原创 2022-04-03 18:52:44 · 1478 阅读 · 0 评论 -
CF 780 D. Maximum Product Strikes Back
Problem - D - Codeforces解题思路:查询区间最大子段乘积,且答案至少是1,换句话说这个区间一定不包含0。(1)先暴力思考解法,可以枚举区间左右端点[l,r]求得最大乘积,如果是正常数组,这个乘积必然超出整数范围,题目贴心地告知绝对值不大于2,因此记录最大乘积只需记录区间内2的个数。由此想到可用前缀和数组记录2和-2的个数。(2)第二个问题,如果乘积元素中负值个数为奇数,乘积结果必然为负数。因此选择的区间负数个数必须为偶数个,怎么才能知道某个区间内负值个数呢,仍使用前缀和数...原创 2022-04-02 10:20:13 · 852 阅读 · 1 评论 -
18708 最大子段和
一个整数序列,选出其中连续且非空的一段使得这段和最大。注意当题目要求输入输出的数据量很大时,尽量使用scanf和printf。 c++提供的cin和cout速度比较慢,有可能在读取数据和输出数据时导致超时。输入格式第一行是一个正整数N,表示了序列的长度(0=<N<=200000)。第二行包含N个绝对值不大于10000的整数ai。输出格式一个整数,为最大的子段和。子段的最小长度为1。数据确保结果在类型int范围内。输入样例72 -4 3 -1 2 -4 3输出样例4知.原创 2022-03-09 22:59:27 · 1130 阅读 · 0 评论 -
1889. 装包裹的最小浪费空间(前缀和+二分查找)
装包裹的最小浪费空间给你 n 个包裹,你需要把它们装在箱子里,每个箱子装一个包裹。总共有 m 个供应商提供 不同尺寸 的箱子(每个规格都有无数个箱子)。如果一个包裹的尺寸 小于等于 一个箱子的尺寸,那么这个包裹就可以放入这个箱子之中。包裹的尺寸用一个整数数组 packages 表示,其中 packages[i] 是第 i 个包裹的尺寸。供应商用二维数组 boxes 表示,其中 boxes[j] 是第 j 个供应商提供的所有箱子尺寸的数组。你想要选择 一个供应商 并只使用该供应商提供的箱子,使得 总.原创 2021-06-07 13:28:02 · 416 阅读 · 0 评论