- 博客(42)
- 收藏
- 关注
原创 空调acwing二进制差分
4889. 空调II炎炎夏日,酷热难耐,农夫约翰计划打开牛棚中的空调给奶牛降温。约翰的牛棚中一共有 N𝑁 头奶牛,编号 1∼N1∼𝑁。牛棚中有 100100 个牛栏排成一排,编号依次为 1∼1001∼100。每头奶牛都占据着连续若干个牛栏,同一个牛栏最多被一头奶牛占据。第 i𝑖 头奶牛占据的牛栏范围是 [si,ti][𝑠𝑖,𝑡𝑖]。不同奶牛的降温需求不同,第 i𝑖 头奶牛的降温需求为 ci𝑐𝑖,这意味着它占据的每个牛栏都至少需要降温 ci𝑐𝑖。牛棚中一共有 M𝑀 台空调,编号 1∼
2025-03-15 18:08:45
621
原创 重新排序acwing
4655. 重新排序给定一个数组 A𝐴 和一些查询 Li,Ri𝐿𝑖,𝑅𝑖,求数组中第 Li𝐿𝑖 至第 Ri𝑅𝑖 个元素之和。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?
2025-03-11 17:54:08
370
原创 有序分数,递归stern-Brocot Tree
1360. 有序分数给定一个整数 NN,请你求出所有分母小于或等于 NN,大小在 [0,1][0,1] 范围内的,并按从小到大顺序依次输出。
2025-02-20 21:11:24
363
原创 挤牛奶(区间合并)
1343. 挤牛奶每天早上 55 点,三名农夫去牛场给奶牛们挤奶。现在从 55 点开始按秒计时,第一名农夫在第 300300 秒开始给牛挤奶,并在第 10001000 秒停止挤奶。第二名农夫在第 700700 秒开始给牛挤奶,并在第 12001200 秒停止挤奶。第三名农夫在第 15001500 秒开始给牛挤奶,并在第 21002100 秒停止挤奶。
2025-02-20 19:50:15
241
原创 区间合并,422. 校门外的树
422. 校门外的树某校大门外长度为 LL 的马路上有一排树,每两棵相邻的树之间的间隔都是 11 米。我们可以把马路看成一个数轴,马路的一端在数轴 00 的位置,另一端在 LL 的位置;数轴上的每个整数点,即 0,1,2,……,L0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。
2025-02-19 21:52:47
849
原创 孤独的照片acwing
4261. 孤独的照片Farmer John 最近购入了 NN 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。奶牛目前排成一排,Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。然而,他不想拍摄这样的照片,其中只有一头牛的品种是更赛牛,或者只有一头牛的品种是荷斯坦牛——他认为这头奇特的牛会感到孤立和不自然。在为每个连续不少于三头奶牛的序列拍摄了一张照片后,他把所有「孤独的」照片,即其中只有一头更赛牛或荷斯坦奶牛的照片,都扔掉了。
2025-02-17 17:37:31
208
原创 鱼塘钓鱼(多路归并,贪心)
1262. 鱼塘钓鱼即:在第 11 个鱼塘中钓鱼第 11 分钟内可钓到 1010 条鱼,第 22 分钟内只能钓到 88 条鱼,……,第 55 分钟以后再也钓不到鱼了。从第 11 个鱼塘到第 22 个鱼塘需要 33 分钟,从第 22 个鱼塘到第 33 个鱼塘需要 55 分钟,……给出一个截止时间 TT,设计一个钓鱼方案,从第 11 个鱼塘出发,希望能钓到最多的鱼。假设能钓到鱼的数量仅和已钓鱼的次数有关,且每次钓鱼的时间都是整数分钟。
2025-02-10 18:22:58
999
原创 【无标题】
/用结构体来存每一组数据struct{int n;//n表示当前组的数据个数int a1[N];//当前组的数据//表示n组测试用例,每组n个数据int k=0;else{j<k;int n;int j=1;=0){//进入循环说明是一组正确的测试用例,测试组数j++,所以一开始j为1,代表一次a[j].n=n;i<=n;i++){j++;
2025-02-10 00:19:34
237
原创 小朋友排队acwing(自己写的有瑕疵)
1215. 小朋友排队nn 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是 00。如果某个小朋友第一次被要求交换,则他的不高兴程度增加 11,如果第二次要求他交换,则他的不高兴程度增加 22(即不高兴程度为 33),依次类推。当要求某个小朋友第 kk 次交换时,他的不高兴程度增加 kk。请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。
2025-02-10 00:04:57
363
原创 火柴排队(变换,这道题好难感觉)
505. 火柴排队涵涵有两盒火柴,每盒装有 nn 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:其中 aiai 表示第一列火柴中第 ii 个火柴的高度,bibi 表示第二列火柴中第 ii 个火柴的高度。每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 99,999,99799,999,997 取模的结果。
2025-02-08 18:01:53
244
原创 日志统计(acWing,蓝桥杯)
1238. 日志统计小明维护着一个程序员论坛。ts id表示在 tsts 时刻编号 idid 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 DD 的时间段内收到不少于 KK 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 TT 满足该帖在 [T,T+D)[T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 KK 个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。
2025-02-08 00:12:04
387
原创 【无标题】
4655. 重新排序给定一个数组 AA 和一些查询 Li,RiLi,Ri,求数组中第 LiLi 至第 RiRi 个元素之和。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?
2025-02-06 20:46:58
410
原创 棋盘(二维差分)
5396. 棋盘小蓝拥有 n×nn×n 大小的棋盘,一开始棋盘上全都是白子。小蓝进行了 mm 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。请输出所有操作做完后棋盘上每个棋子的颜色。
2025-02-06 19:37:07
430
原创 空调(差分、变换题意)
4262. 空调Farmer John 的 NN 头奶牛对他们牛棚的室温非常挑剔。有些奶牛喜欢温度低一些,而有些奶牛则喜欢温度高一些。Farmer John 的牛棚包含一排 NN 个牛栏,编号为 1…N1…N,每个牛栏里有一头牛。第 ii 头奶牛希望她的牛栏中的温度是 pipi,而现在她的牛栏中的温度是 titi。为了确保每头奶牛都感到舒适,Farmer John 安装了一个新的空调系统。
2025-02-06 17:51:50
297
原创 k倍区间(3种)
1230. K倍区间给定一个长度为 NN 的数列,A1,A2,…ANA1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…AjAi,Ai+1,…Aj 之和是 KK 的倍数,我们就称这个区间 [i,j][i,j] 是 KK 倍区间。你能求出数列中总共有多少个 KK 倍区间吗?
2025-02-05 15:36:44
368
原创 前缀和 求壁画acwing
562. 壁画Thanh 想在一面被均分为 NN 段的墙上画一幅精美的壁画。每段墙面都有一个美观评分,这表示它的美观程度(如果它的上面有画的话)。不幸的是,由于洪水泛滥,墙体开始崩溃,所以他需要加快他的作画进度!每天 Thanh 可以绘制一段墙体。在第一天,他可以自由的选择任意一段墙面进行绘制。在接下来的每一天,他只能选择与绘制完成的墙面相邻的墙段进行作画,因为他不想分开壁画。
2025-02-04 16:54:46
703
原创 管道acwing(有瑕疵)
5407. 管道有一根长度为 lenlen 的横向的管道,该管道按照单位长度分为 lenlen 段,每一段的中央有一个可开关的阀门和一个检测水流的传感器。一开始管道是空的,位于 LiLi 的阀门会在 SiSi 时刻打开,并不断让水流入管道。对于位于 LiLi 的阀门,它流入的水在 TiTi(Ti≥SiTi≥Si)时刻会使得从第 Li−(Ti−Si)Li−(Ti−Si) 段到第 Li+(Ti−Si)Li+(Ti−Si) 段的传感器检测到水流。求管道中每一段中间的传感器都检测到有水流的最早时间。
2025-02-03 22:15:01
224
原创 分巧克力a
1227. 分巧克力儿童节那天有 KK 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 NN 块巧克力,其中第 ii 块是 Hi×WiHi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 NN 块巧克力中切出 KK 块巧克力分给小朋友们。例如一块 6×56×5 的巧克力可以切出 66 块 2×22×2 的巧克力或者 22 块 3×33×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?
2025-02-03 16:53:59
120
原创 acwing503. 借教室
在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来 nn 天的借教室信息,其中第 ii 天学校有 riri 个教室可供租借。
2025-02-03 16:30:21
517
原创 全排列-带分数
使用next_permutation(s.begin(),s.end())全排列1-9中的数字,接着依次遍历判断符合通分后的结果。
2025-01-25 11:13:09
144
原创 连号区间数
小明这些天一直在思考这样一个奇怪而有趣的问题:在 1 ~ 𝑁N 的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间 [𝐿,𝑅][L,R] 里的所有元素(即此排列的第 𝐿L 个到第 𝑅R 个元素)递增排序后能得到一个长度为 𝑅−𝐿+1R−L+1 的"连续"数列,则称这个区间连号区间。当 𝑁N 很小的时候,小明可以很快地算出答案,但是当 𝑁N 变大的时候,问题就不是那么简单了,现在小明需要你的帮助。
2025-01-25 10:29:29
371
原创 除自身以外的数组乘积-“前缀和”
时间复杂度O(N)空间复杂度O(N)public:// L 和 R 分别表示左右两侧的乘积列表// L[i] 为索引 i 左侧所有元素的乘积// 对于索引为 '0' 的元素,因为左侧没有元素,所以 L[0] = 1L[0] = 1;i < length;i++) {// R[i] 为索引 i 右侧所有元素的乘积// 对于索引为 'length-1' 的元素,因为右侧没有元素,所以 R[length-1] = 1i >= 0;i--) {
2025-01-13 11:18:56
315
原创 赎金信(一些函数的使用,哈希)
我是直接将找到的擦除了,会改变原来的字符串本题比较简单,运用c++中的一些函数加一下判断就可以实现时间复杂度为 O(n*m)
2025-01-12 16:14:11
278
原创 长度最小的子数组
给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度如果不存在符合条件的子数组(是数组中连续的元素序列),返回0。2子数组[4,3]是该条件下的长度最小的子数组。10O(n)
2025-01-12 13:55:40
328
原创 盛最多水的容器
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。49图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。1。
2025-01-12 12:54:10
238
原创 验证回文串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个。字母和数字都属于字母数字字符。给你一个字符串s,如果它是,返回true;否则,返回false。true"amanaplanacanalpanama" 是回文串。false"raceacar" 不是回文串。s = " "true在移除非字母数字字符之后,s 是一个空字符串 ""。由于空字符串正着反着读都一样,所以是回文串。
2025-01-12 12:21:22
132
原创 罗马数字转整数
罗马数字包含以下七种字符:IVXLCD和M。例如, 罗马数字2写做II,即为两个并列的 1。12写做XII,即为XII。27写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。IVXXLCCDM给定一个罗马数字,将其转换成整数。
2025-01-11 23:42:33
517
原创 整数转罗马数字
罗马数字是通过添加从最高到最低的小数位值的转换而形成的。VIIVXIIXIVIXXLXCCDCMIXCMVLD给定一个整数,将其转换为罗马数字。num = 37493000 = MMM 由于 1000 (M) + 1000 (M) + 1000 (M)700 = DCC 由于 500 (D) + 100 (C) + 100 (C)40 = XL 由于 50 (L) 减 10 (X)9 = IX 由于 10 (X) 减 1 (I)注意:49 不是 50 (L) 减 1 (I) 因为转换是基于小数位。
2025-01-11 23:11:21
326
原创 【无标题】
大衣有一个长度为 𝑁N 的字符串 𝑠s,他想用一些间隔符将字符串分隔成不同的区间,要求所有区间内元音字母的个数都为正整数 𝐾K,大衣想知道一共有多少种分隔方法满足条件。由于答案可能很大,将答案对1e9 + 7取模。ab|i|du和ab|id|u为两种不同的分隔方法。为元音字母。第一行输入两个正整数 𝑁,𝐾N,K 表示字符串的长度和要求区间内元音字母的个数。第二行输入一个长度为 𝑁N 的字符串 𝑠s。输出一个数字表示答案。
2025-01-11 00:24:15
189
原创 连续子序列的个数(双指针)
给你一个长度为 𝑛n 的数组 𝑎a 和一个数字 𝑚m ,请你计算这个数组有多少个连续子序列的和大于等于 𝑚m?如果两个连续子序列来自数组中的不同位置,我们认为它们是不同的,即使它们在内容上是相同的。
2025-01-10 16:44:06
354
原创 分巧克力(前缀和+双指针)
由于 Setsuna 和 myworld 两位同学在队内测试中 𝑎𝑘ak 了比赛,所以 Wiki 老师决定奖励他们。但是,这两位同学作为校内顶级 𝑎𝑐𝑚𝑒𝑟𝑠acmers,Wiki 老师觉得奖励也必须要和算法挂钩。现在已知 Wiki 老师有 𝑛n 个盒子,已知每个盒子里面有 𝑎𝑖ai 块巧克力,盒子按照 1,2,3...𝑛1,2,3...n 的编号顺序从左往右依次摆放在 301301 训练基地的桌子上。
2025-01-10 15:39:23
429
原创 三数之和-双指针
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。[]唯一可能的三元组和不为 0。[[0,0,0]]唯一可能的三元组和为 0。先将一个符合的一行数据插入到set集合中(选set是因为他可以去重)然后再将集合放入到ans数组中,返回vector数组。
2025-01-07 19:59:32
333
原创 多数元素-
给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。32尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。
2025-01-07 16:18:48
293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人