自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3467)
  • 收藏
  • 关注

原创 【ACWing】126. 最大的和

枚举上下边界,考虑所有上下边界确定的子矩阵,接着问题变为考虑一维情况下的最大子数组的和,这可以用动态规划来做,枚举右端点,然后按照子数组是单独一个数,还是加上前面的来分类。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。个元素,输入顺序从二维数组的第一行开始向下逐行输入,同一行数据从左向右逐个输入。给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为。从第二行开始,输入由空格和换行符隔开的。输出一个整数,代表最大子矩形的总和。个整数,它们即为二维数组中的。

2024-03-09 14:50:19 832

原创 【Leetcode】899. Orderly Queue(配数学证明)

个字母其中的一个移到最后。问这样操作能得到的字典序最小的字符串是什么。所以本质上任意排列都能得到,所以直接排序就行了。,我们可以证明任何对换都能由上面的操作得到。所有轮换的最小字典序,直接暴力枚举即可。允许做若干次操作,每一次将。

2024-02-11 16:26:30 905 1

原创 【ACWing】113. 特殊排序

每一对元素之间的大小关系是确定的,关系具有反对称性,但不具有传递性。注意:不存在两个元素大小相等的情况。也就是说,元素的大小关系是。条有向边构成的任意有向图。然而,这是一道交互式试题,这些关系不能一次性得知,你必须通过不超过。个元素排成一行,使得每个元素都小于右边与它相邻的元素。个元素排好序后,把他们的编号以数组的形式输出,如果答案不唯一,则输出任意一个均可。次提问来获取信息,每次提问只能了解某两个元素之间的关系。来获得两个元素之间的大小关系。归并排序的比较次数是小于。的两个元素,如果元素。

2024-01-29 17:08:50 892

原创 【ACWing】102. 最佳牛围栏

约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少。最后返回答案的时候要返回范围区间的右端点,因为求的是向下取整的结果。块田地组成,每块地里都有一定数量的牛,其数量不会少于。输出一个整数,表示平均值的最大值乘以。,在判断的时候可以遍历的时候维护。再向下取整之后得到的结果。行,每行输入一个整数,第。片区域内包含的牛的数目。后,其实就是问是否存在。,数据间用空格隔开。

2024-01-29 10:52:56 890

原创 【ACWing】108. 奇数码问题

在游戏过程中,可以把空格与其上、下、左、右四个方向之一的数字交换(如果存在)。现在给定两个奇数码游戏的局面,请判断是否存在一种移动空格的方式,使得其中一个局面可以变化到另一个局面。的一行的时候逆序对的个数的奇偶性相同。代表空格,其余数值与奇数码游戏中的意义相同,保证这些整数的分布不重不漏。空格移动的规则与八数码游戏相同,实际上,八数码就是一个。你一定玩过八数码游戏,它实际上是在一个。对于每组数据,若两个局面可达,输出。奇数码游戏是它的一个扩展,在一个。个整数,表示第一个局面。个整数,表示第二个局面。

2024-01-28 19:01:39 824

原创 【ACWing】105. 七夕祭

虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧、苹果糖、棉花糖、射的屋……Vani预先联系了七夕祭的负责人zhq,希望能够通过恰当地布置会场,使得各行中cl感兴趣的摊点数一样多,并且各列中cl感兴趣的摊点数也一样多。不过zhq告诉Vani,摊点已经随意布置完毕了,如果想满足cl的要求,唯一的调整方式就是交换两个相邻的摊点。由于zhq率领的TYVJ开发小组成功地扭曲了空间,每一行或每一列的第一个位置和最后一个位置也算作相邻。如果只能使各列中cl感兴趣的摊点数一样多,输出。

2024-01-28 18:36:59 838

原创 【ACWing】122. 糖果传递(配数学证明)

如果整个图是一个圈,那我们将每条边的边权都减去最小边权,显然仍然是一个方案,这个方案里原先图的最小边权变为了。对于环形的情况,容易证明,所有的最优的交换方案里,一定存在一个方案,在这个方案中有两个人相邻但没有交换糖果。如果整个图不是一个圈,说明一定存在某个人只是给邻居糖果而没有从别人那里拿,比如这个人号码是。,可以参考均分纸牌里的证明,结论也正确。最小代价其实就是均分纸牌那道题的移动方式,证明其实是类似的。如果不是环形的,而是坐成一排,那么问题就变为“均分纸牌”,参考。个糖果,这样的方案仍然是最优解。

2024-01-28 17:43:15 889

原创 【ACWing】107. 超快速排序

在这个问题中,您必须分析特定的排序算法----超快速排序。您的任务是确定超快速排序需要执行多少交换操作才能对给定的输入序列进行排序。,代表对给定输入序列进行排序所需的最小交换操作数,每个整数占一行。答案就是逆序对的数量,求逆序对数量可以用归并排序。个不同整数的序列,直到序列按升序排序。对于每个需要处理的输入序列,输出一个整数。,代表用例中输入序列的具体数据,第。当输入用例中包含的输入序列长度为。,代表该用例中输入序列的长度。时,输入终止,该序列无需处理。每个测试用例的第一行输入整数。行的数据代表序列中第。

2024-01-28 11:32:20 889

原创 【ACWing】103. 电影

部电影正在上映,每部电影的语音和字幕都采用不同的语言。对于观影的科学家来说,如果能听懂电影的语音,他就会很开心;请你帮忙选择一部电影,可以让观影很开心的人最多。如果有多部电影满足条件,则在这些电影中挑选观影比较开心的人最多的那一部。在会议结束后,所有的科学家决定一起去看场电影放松一下。先统计每个语言有多少个科学家懂,然后遍历电影找到最优的那个即可。输出一个整数,代表最终选择的电影的编号。部电影的语音采用的语言的编号。部电影的字幕采用的语言的编号。个科学家懂得的语言的编号。,代表科学家的数量。

2024-01-28 10:25:47 805

原创 【ACWing】130. 火车进出栈问题

,这样答案分解质因数之后的素数有哪些就确定了,接着我们就计算答案里每个素数的幂是多少,容易知道。里各个素数的幂次之后,最后做一次高精度乘法即可。由于答案可能非常长,我们需要压位。本题数据范围太大,我们可以采取分解质因数的方式来算。每节车厢有两种运动方式,进栈与出栈,问。节车厢出栈的可能排列方式有多少种。节车厢出栈的可能排列方式数量。,所以我们先用欧拉筛筛出。,代表火车的车厢数。

2024-01-22 05:44:27 799

原创 【洛谷】P2712 摄像头

现有一群胆大妄为的松鼠想要抢劫食品店,为了不让摄像头拍下他们犯罪的证据,他们抢劫前的第一件事就是砸毁这些摄像头。为了便于砸毁摄像头,松鼠歹徒们把所有摄像头和摄像头能监视到的地方统一编号,一个摄像头能被砸毁的条件是该摄像头所在位置不被其他摄像头监视。先建图,然后做拓扑排序,可以用BFS,注意到入队的时候要判断一下那个位置是否有摄像头,如果没有摄像头的话不需要入队。现在你的任务是帮松鼠们计算是否可以砸掉所有摄像头,如不能则输出还没砸掉的摄像头的数量。行是摄像头的信息,包括:摄像头的位置。,表示摄像头的个数。

2024-01-21 17:26:05 864

原创 【ACWing】1055. 股票买卖 II

设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输出一个整数,表示最大利润。个数字表示一个给定股票在第。的正整数,表示完整的数组。

2024-01-21 16:30:07 806

原创 【ACWing】109. 天才ACM(配数学证明)

然而我们每次是新加了一些数,前面已经加的数已经排好序了,从而用归并排序更加节省时间。,无论怎样,都可以暴力验证将这四个数按照定理中的配对方式能得到更大的和,这就矛盾了。对,则取到不能取为止),使得“每对数的差的平方”之和最大,这个最大值就称为集合。,截取出这样的一段之后,再在剩余的数里继续进行这个操作(由于如果集合。这一段的校验值是否满足条件,如果满足,则延伸右端点并倍增步长,令。的校验值,所以每次取的时候要尽可能的多取数,那样更优)。开始的最长的一段,使得那一段的校验值小于等于。,对于任意一个整数集合。

2024-01-21 12:35:59 926

原创 【ACWing】1047. 糖果

的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们。当然,在满足这一条件的基础上,糖果总数越多越好。注意:Dzx只能将糖果公司的产品整件带走。由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券。在这一天,Dzx可以从糖果公司的。件产品每件都包含数量不同的糖果。Dzx希望他选择的产品包含的糖果总数是。个整数,表示糖果公司该件产品中包含的糖果数目,不超过。符合要求的最多能达到的糖果总数,如果不能达到。的情况下,最多数量的糖果数。

2024-01-20 17:19:17 807

原创 【ACWing】514. 寻找道路

那么这个点也不合法(因为它走到了一个与终点不连通的点)。将所有不合法的点进行标记,然后在原图中BFS求一下最短路即可,略过不合法的点。建立原图和反向图,先在反向图里从终点开始进行DFS,标记一下终点能走到的点,设。输出只有一行,包含一个整数,表示满足题目描述的最短路径的长度。1.路径上的所有点的出边所指向的点都直接或间接与终点连通。在原图里无法走到终点),接着,如果某个点能走到。,之间用一个空格隔开,表示有一条边从点。请你输出符合条件的路径的长度。如果这样的路径不存在,输出。为能走到的点,那么首先,

2024-01-18 17:01:38 363

原创 【ACWing】1139. 最优布线问题

为了方便数据传输,现要将它们用数据线连接起来,同一条数据线中数据的传输可以是双向的。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机(作为中转)来实现与另一台计算机的连接。现在由你负责连接这些计算机,任务是使任意两台计算机都连通(不管是直接的或间接的)。一个整数,表示最小的连接费用。,表示计算机的数目。

2024-01-18 15:35:10 339

原创 【Leetcode】808. Soup Servings

的相等概率从四种操作中选择一种。如果剩余的汤量不足以完成操作,将全部提供。一旦汤不够了就停止。的A型和B型同时用完的概率。然后用全概率公式进行记忆化搜索。的A型和B型同时用完的概率。毫升的每种类型的汤。型汤首先用完的概率,加上。范围内的答案都可以接受。型汤首先用完的概率,加上。,实际时间不会这么多。思路是记忆化搜索,令。

2024-01-16 15:39:43 351

原创 【Leetcode】689. Maximum Sum of 3 Non-Overlapping Subarrays

个不重合子区间的情况下的最大总和(递推从后向前递推,那么求方案的时候就能从前向后求字典序最小的方案)。那么全局最大总和就是。个区间的总和最大,问方案,只需给出每个区间的起点下标即可。如果方案不唯一,则返回字典序最小的那个方案。的不重合的区间,使得这。开始,先求前缀和数组。

2024-01-14 13:07:12 791

原创 【Leetcode】1011. Capacity To Ship Packages Within D Days

代表每个货物的重量。有一个运输车,其有一个载重,它需要按照顺序将每个货物装载并运到另一个地方,每天运一次。,问车的最小载重,使得运输的天数小于等于。

2024-01-09 16:30:27 389

原创 【Leetcode】88. Merge Sorted Array

合并两个有序数组,分别为数组。

2024-01-09 12:44:32 361

原创 【Leetcode】1358. Number of Substrings Containing All Three Characters

枚举子串右端点,对于每个右端点,找到最右边的左端点使得中间的子串满足条件,如果这样的左端点下标为。,那么该右端点对应的子串数量为。,问每个字母都含的子串数量。

2024-01-09 12:28:23 387

原创 【Leetcode】107. Binary Tree Level Order Traversal II

对一棵二叉树进行层序遍历,并从下到上返回每一层的值。

2024-01-08 16:32:31 344

原创 【Leetcode】1944. Number of Visible People in a Queue

从右向左遍历,维护一个严格单调下降的栈,加入一个数的时候,这个人如果违反了下降性质,那么pop栈顶,栈顶是这个人能看到的人,从而将答案加。每个数字代表这个人的高度,他向右看,可以看到的人满足的条件是他们两个人之间的人都比他们俩个子矮。问每个人向右看能看到几个人。容易知道被pop的人以后不会被看到了。除了被pop的人之外,如果栈里还有数,那么这个人比当前的人高,并且也能被看到,则答案还需要再加一次。

2024-01-08 16:26:05 365

原创 【Leetcode】2090. K Radius Subarray Averages

的子数组的平均值,除不尽直接取整。的每个数为中心,半径为。,再给定一个非负整数。

2024-01-07 13:39:19 371

原创 【Leetcode】2812. Find the Safest Path in a Grid

一条路径的安全系数定义为其包含的所有点的安全系数的最小值。问安全系数最大的路径的安全系数。思路是多源BFS+二分答案。先用多源BFS求出每个位置的安全系数,然后再二分答案,对于每个可能的答案。可以直接暴力搜索所有路径,但是需要做记忆化,记忆一下每个点出发是否存在安全系数大于等于。代表空地,每个位置的安全系数为其和与其曼哈顿距离最近的贼的曼哈顿距离。的路径,即求每个点的安全系数都大于等于。,判断一下是否存在安全系数大于等于。的路径,减少重复搜索。

2024-01-07 09:50:51 751

原创 【Leetcode】1891. Cutting Ribbons

木棍不能拼接,只能剪断。是单调的,从而可以二分。,问是否可以将那些木棍截取出至少。(否则切不出长度了),对于长度。条木棍及其长度,以数组。

2024-01-05 17:08:28 391

原创 【Leetcode】691. Stickers to Spell Word

的填充状态看成一个二进制数,然后DFS,每一层枚举当前要选哪个字符串进行填充。为了避免重复,我们开两个数组。个不同字符串若干个,允许重复选,使得选出的字符串的字母构成的多重集可以覆盖。填充一个字符串等价于填充其所有所含字母。个不同的字符串,以数组形式给出,再给定一个字符串。问需要多少个字符串。之后形成的新状态是什么(有可能。填满(填满对应的状态就是。的字符已经填充完毕,或者。时间复杂度指数级,空间。

2024-01-05 14:18:38 323

原创 【Leetcode】1528. Shuffle String

再给定一个同长数组。

2024-01-05 11:18:08 334

原创 【Leetcode】1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold

的前缀和数组,这样方便迅速求得子方阵的和。直接枚举子方阵的右下角的点即可,如果发现了某个边长。,从而我们枚举子方阵边长的时候可以单调的枚举,因为我们不必枚举更小的答案。的子方阵中边长最大是多少。,那么我们就知道了答案一定大于等于。,再给定一个非负整数。的子方阵的和小于等于。

2023-12-08 13:16:36 87

原创 【Leetcode】1291. Sequential Digits

直接求出所有这样的数,然后只讲范围里的数加入答案。,求所有这样的数,这个数的每一位都比其后一位少。给定一个正整数的范围。

2023-12-06 12:08:11 91

原创 【Leetcode】1289. Minimum Falling Path Sum II

求数值总和最小的下降路径的总和,要求每一步下降都不能是竖直的下降。的最小值和次小值即可。

2023-12-06 12:00:13 91

原创 【Leetcode】1286. Iterator for Combination

的这一位取,否则代表不取。我们考虑怎么让字典序变得稍微大一些,其实就是让那个二进制数小一点。只含不同的字符,并且按字典序已经从小到大排好。的后缀,那已经最大了;如果不是,我们从后向前找第一个。,要求设计一个迭代器,每次返回长。之后的部分已经最小了,我们让那个。,我们将其映射到一个二进制数,字典序最小的子序列当然就是。,然后再继续向前找到第一个。向后挪一步,然后将其后面的。next的时间复杂度。,hasNext时间。

2023-12-05 15:01:06 47

原创 【Leetcode】1284. Minimum Number of Flips to Convert Binary Matrix to Zero Matrix

的十字,即某个位置和其四个方向一格的位置。问至少flip多少次可以让整个矩阵变为全。,每次允许flip一个长为。

2023-12-04 05:23:25 32

原创 【Leetcode】1283. Find the Smallest Divisor Given a Threshold

再给定一个大于等于。

2023-12-04 04:31:00 29

原创 【Leetcode】299. Bulls and Cows

题目保证两个字符串长度相同。是数字猜对但是位置不对的数字个数。是猜对的位置符合的数字个数,给定两个数字构成的字符串。

2023-12-03 11:42:37 32

原创 【Leetcode】2413. Smallest Even Multiple

【代码】【Leetcode】2413. Smallest Even Multiple。

2023-12-03 09:07:35 26

原创 【Leetcode】1278. Palindrome Partitioning III

个非空子串,至少修改多少个字符能使得每一部分都成为回文串,那么可以按照最后一段是哪一段来分类,如果最后一段长度是。个子串都变成回文串。问被修改的位置的个数的最小值。个非空子串,每个子串修改若干个字符使得这。,那么此时最少修改次数就是。修改多少次可以成为回文串。

2023-12-01 14:18:01 35

原创 【Leetcode】1276. Number of Burgers with No Waste of Ingredients

问是否存在一个方案使得这些资源恰好能用完。个奶酪,第二类汉堡需要。

2023-11-29 10:29:31 42

原创 【Leetcode】1269. Number of Ways to Stay in the Same Place After Some Steps

的位置,每一步可以向左、向右或者不动,问。的数组,有个指针位于。

2023-11-28 14:37:07 41

原创 【Leetcode】1263. Minimum Moves to Move a Box to Their Target Location

那么初始状态已知,而其能转移到的状态可以分成两种情况,首先考虑人走一步,那人有三个方向可以走(去掉出界、障碍物等等非法情况),转移的代价为。(因为箱子没动),然后再考虑箱子走一步,这种情况只有在人恰好在箱子旁边的时候才能转移到,并且箱子移动到的地方不能非法,这种转移的代价为。除了出界、障碍物以外的位置,人和箱子都可以进入。求将箱子推到目标位置的箱子的最少移动步数。图上求最短路,可以用双端队列BFS来做。代表障碍物,人和箱子都不能进入,思路是双端队列BFS。代表箱子的初始位置,代表箱子的目标位置,

2023-11-27 16:07:04 104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除