自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode力扣 2024. 考试的最大困扰度

一位老师正在出一场由 n 道判断题构成的考试,每道题的答案为 true (用 ‘T’ 表示)或者 false (用 ‘F’ 表示)。老师想增加学生对自己做出答案的不确定性,方法是最大化有连续相同结果的题数。(也就是连续出现 true 或者连续出现 false)。给你一个字符串 answerKey,其中 answerKey[i] 是第 i 个问题的正确结果。

2024-05-25 23:27:27 226

原创 leetcode力扣 213. 打家劫舍 II

计划偷窃沿街的房屋是小偷的计划。在这个地方,所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。但是,相邻的房屋都装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。为了计算在不触动警报装置的情况下,今晚能够偷窃到的最高金额,我们给定了一个代表每个房屋存放金额的非负整数数组。

2024-05-25 23:08:27 283

原创 蓝桥杯-数三角(ac代码时间复杂度分析)

这就导致了遍历hash的时候, 当点的个数增加到2000的时候, 实际hash执行的次数不到2000 (map的映射个数不到 100,(这里按50个外圈, 50 * 50是2500, 比2000个点大), vecotr中最多是4个点, 4 * 4 = 16) 所以hash执行的次数是100 * 16 == 1600, 这还是中间点的情况, 而且是按2500个点算, 其他点的遍历次数更少。中间的点在执行hash时是最耗时的, 而且图中这种方式的点分布也是让所有点的时间复杂度尽可能多的情况。

2024-05-24 20:45:03 1272

原创 蓝桥杯-合并数列

小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案,分别将它们列为两个数组 {a1, a2, …, an} 和 {b1, b2, …, bm}。两个数组的和相同。定义一次合并操作可以将某数组内相邻的两个数合并为一个新数,新数的值是原来两个数的和。小明想通过若干次合并操作将两个数组变成一模一样,即 n=m 且对于任意下标 i 满足 ai=bi。请计算至少需要多少次合并操作可以完成小明的目标。

2024-05-23 21:27:51 660

原创 蓝桥杯-班级活动

班上一共有 ( n ) 名(( n ) 为偶数)同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 ( n ) 以内的正整数作为 id,第 ( i ) 名同学的 id 为 ( a_i )。老师希望通过更改若干名同学的 id 使得对于任意一名同学 ( i ),有且仅有另一名同学 ( j ) 的 id 与其相同(( a_i = a_j ))。仅需要把 ( a_1 ) 改为 3 或者把 ( a_4 ) 改为 1 即可。第一行为一个正整数 ( n )。

2024-05-23 01:30:00 169

原创 蓝桥杯-子 2023 / 双子数

A 子 2023小蓝在黑板上连续写下从 11 到 20232023 之间所有的整数,得到了一个数字序列:B 双子数

2024-05-22 20:13:34 331

原创 蓝桥杯-日志统计(滑动窗口)

小明维护着一个程序员论坛。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。第一行包含三个整数 N,D,K。以下 N 行每行一条日志,包含两个整数 ts 和 id。按从小到大的顺序输出热帖 id。每个 id 占一行。

2024-05-22 16:35:44 408

原创 逆序对的数量

给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数 n,表示数列的长度。第二行包含 n 个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000,数列中的元素的取值范围 [1...

2024-05-16 16:29:00 226

原创 蓝桥杯-外卖店优先级(简单写法)

饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。第一行包含 3 个整数 N,M,T。

2024-05-15 23:04:36 692

原创 蓝桥杯-航班时间(简单写法+sscanf的应用)

小 h 前往美国参加了蓝桥杯国际赛。小 h 的女朋友发现小 h 上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小 h 对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京和美国东部有 12 小时时差,故飞机总共需要 14 小时的飞行时间。不久后小 h 的女朋友去中东交换。小 h 并不知道中东与北京的时差。但是小 h 得到了女朋友来回航班的起降时间。小 h 想知道女朋友的航班飞行时间是多少。

2024-05-15 19:09:33 1082

原创 蓝桥杯-日期问题

小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?

2024-05-13 20:21:01 184

原创 蓝桥杯-移动距离(最简单的写法)

X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为 6 时,开始情形如下:13 14 15 …我们的问题是:已知了两个楼号 m 和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)。输入共一行,包含三个整数 w,m,n,w 为排号宽度,m,n 为待计算的楼号。输出一个整数,表示 m,n 两楼间最短移动距离。6 8 24。

2024-05-13 15:45:00 424

原创 排序算法(归并排序)

给定你一个长度为 n 的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。输出共一行,包含 n 个整数,表示排好序的数列。

2024-05-13 10:30:22 185

原创 蓝桥杯-回文日期(两种写法)

在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。牛牛认为,一个日期是回文的,当且仅当表示这个日期的 8 位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。一个 8 位数字是回文的,当且仅当对于所有的 i。

2024-05-13 08:00:00 601

原创 蓝桥杯-错误票据(两种写法stringstream和扣字符)

某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。第一行包含整数 N,表示后面共有 N 行数据。接下来 N 行,每行包含空格分开的若干个(不大于100个)正整数(不大于100000),每个整数代表一个ID号。

2024-05-12 19:52:29 253

原创 蓝桥杯-递增三元组(三种解法,二分, 双指针, 前缀和)

给定三个整数数组请你统计有多少个三元组 (i,j,k)满足:1≤i,j,k≤NAi

2024-05-12 07:00:00 425

原创 蓝桥杯-波动数列

观察这个数列:这个数列中后一项总是比前一项增加2或者减少3,且每一项都为整数。栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加 a 或者减少 b 的整数数列可能有多少种呢?共一行,包含四个整数 n,s,a,b,含义如前面所述。共一行,包含一个整数,表示满足条件的方案数。由于这个数很大,请输出方案数除以 100000007 的余数。1≤n≤1000,1≤a,b≤1e64 10 2 32两个满足条件的数列分别是2 4 1 3和7 4 1 -2。

2024-05-11 20:05:07 864

原创 蓝桥杯-连号区间数

如果区间 [L,R] 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R−L+1 的“连续”数列,则称这个区间连号区间。第二个用例中,有 9 个连号区间分别是:[1,1],[1,2],[1,3],[1,4],[1,5],[2,2],[3,3],[4,4],[5,5]第一个用例中,有 7 个连号区间分别是:[1,1],[1,2],[1,3],[1,4],[2,2],[3,3],[4,4]3, 4, 2, 1它们单独是一个区间 ->4个。3 2 4 1 ->1个。

2024-05-11 15:45:48 284

原创 蓝桥杯-地宫取宝

X 国王有一个地宫宝库,是 n×m 个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是 k 件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局...

2024-05-09 11:38:00 519 2

原创 AcWing 895. 最长上升子序列

给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数 N。第二行包含 N 个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤1000,−1e9≤数列中的数≤1e9输入样例:73 1 2 1 8 5 6输出样例:4题解:样例的最大上升子序列是 1 2 5 6, 长度为4f[i] 表示的是 以 ...

2024-05-09 09:27:00 446

原创 摘花生(dp问题)

Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入格式第一行是一个整数T,代表一共有多少组数据。...

2024-05-08 20:54:00 533

原创 01背包问题

有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表...

2024-05-08 19:35:00 331

原创 蓝桥杯-蚂蚁感冒

长 100 厘米的细长直杆子上有 n 只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是 1 厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有 1 只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入格式第一行输入一个整数 n, 表示蚂蚁的总数。接着的一行是...

2024-05-07 21:54:00 911

原创 蓝桥杯-买不到的数目

小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数 n...

2024-05-07 20:42:00 246

原创 蓝桥杯-翻硬币

小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作...

2024-05-06 23:16:00 380

原创 蓝桥杯-带分数

100 可以表示为带分数的形式:100 = 3 + 69258/714还可以表示为:100 = 82 + 3546 / 197注意特征:带分数中,数字 1∼9 分别出现且只出现一次(不包含 0)。类似这样的带分数,100 有 11 种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9 不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<1e6输入样例1:...

2024-05-06 21:25:00 510

原创 蓝桥杯-四平方和

四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。比如:5= 0^2 + 0^2 + 1^2 + 2^27= 1^2 + 1^2 + 1^2 + 2^2对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4 个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d 为联...

2024-05-06 20:03:00 365

原创 机器人跳跃问题

机器人正在玩一个古老的基于 DOS 的游戏。游戏中有 N+1 座建筑——从 0 到 N 编号,从左到右排列。编号为 0 的建筑高度为 0 个单位,编号为 i 的建筑高度为 H(i) 个单位。起初,机器人在编号为 0 的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第 k 个建筑,且它现在的能量值是 E,下一步它将跳到第 k+1 个建筑。如果 H(k+1)>E,那么机器人...

2024-05-06 10:43:00 369

原创 蓝桥杯-k倍区间

给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。输出格式输出一个整数,代表 K 倍区间的数目。数据范围1≤N,K≤100000,1≤Ai≤10000...

2024-05-03 22:26:00 333 1

原创 蓝桥杯-分巧克力

儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小...

2024-05-03 15:43:00 340

原创 acwing 116. 飞行员兄弟

"飞行员兄弟"这个游戏,需要玩家顺利的打开一个拥有 16 个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个 4×4 的矩阵,您可以改变任何一个位置 [i,j] 上把手的状态。但是,这也会使得第 i 行和第 j 列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入一共包含四行,每行包含四个把手的初始状态。符号 + 表示把手处于闭合状态,而符号 - 表示把手处于打开状态。

2024-04-30 20:15:00 233

原创 AcWing 95. 费解的开关

原题链接你玩过“拉灯”游戏吗?25 盏灯排成一个 5×5 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角...

2024-04-30 08:59:00 359

原创 leetcode(力扣) 2866. 美丽塔 II

原题链接题解:暴力做法 (时间复杂度 O(n^2))每次选取下标 i 为峰值, 进行 n 次,对每次取max就可以找到答案对于 i 左边的序列: 需要满足序列是非递减的, 同时每个值尽可能大所以满足: j 的位置上的数 <= (j, i] 上的最小的值 (等于时取得最大值) , 同时需要保证 j 位置上的数要小于heights[j] (题目中的要求,美丽塔的要求); 即 t...

2024-04-28 22:54:00 222

原创 快速幂qmi

求 a 的 b 次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b≤1e91≤p≤1e9输入样例:3 2 7输出样例:2题解:代码中用位运算判断 b 当前位是否为0,不是 0 的话就乘进答案中有的代码中把res初始化为 res = 1 % p, 这是为了避免特殊情况...

2024-04-24 22:14:00 272

原创 Dijkstra迪杰斯特拉求最短路和最短路的条数和各个点权值的最大值

作为一个城市的紧急救援队队长,你会得到一张你所在国家的特殊地图。 该地图显示了由一些道路连接的几个分散的城市。地图上标出了每个城市的救援队伍数量以及任意两个城市之间每条道路的长度。 当其他城市接到紧急电话时,你的工作就是尽快带领你的人员赶到现场,同时在途中召集尽可能多的人手。输入规格:每个输入文件包含一个测试用例。 对于每个测试用例,第一行包含 4 个正整数:N (≤500) - 城市数量...

2024-04-24 00:14:00 270

原创 已知二叉树的先序和后序求任意一中序

假设一个二叉树上所有结点的权值都互不相同。我们可以通过后序遍历和中序遍历来确定唯一二叉树。也可以通过前序遍历和中序遍历来确定唯一二叉树。但是,如果只通过前序遍历和后序遍历,则有可能无法确定唯一二叉树。现在,给定一组前序遍历和后序遍历,请你输出对应二叉树的中序遍历。如果树不是唯一的,则输出任意一种可能树的中序遍历即可。输入格式第一行包含整数 N,表示结点数量。第二行给出前序遍历序列...

2024-04-23 19:48:00 232

原创 已知二叉树的前序和中序遍历求后序遍历

假设二叉树上各结点的权值互不相同且都为正整数。给定二叉树的前序遍历和中序遍历,请你输出二叉树的后序遍历序列。输入格式第一行包含整数 N,表示二叉树结点总数。第二行给出二叉树的前序遍历序列。第三行给出二叉树的中序遍历序列。输出格式输出二叉树的后序遍历的第一个数字。数据范围1≤N≤50000输入样例:71 2 3 4 5 6 72 3 1 5 4 7 6输出样例:...

2024-04-23 18:40:00 406

原创 已知二叉树的后序和中序遍历求前序遍历

假设二叉树上各结点的权值互不相同且都为正整数。给定二叉树的后序遍历和中序遍历,请你输出二叉树的前序遍历序列。输入格式:第一行包含整数 N,表示二叉树结点总数。第二行给出二叉树的后序遍历序列。第三行给出二叉树的中序遍历序列。输出格式输出二叉树的前序遍历数据范围1≤N≤50000,二叉树结点权值范围 [1,1e9]。样例输入:71 2 3 4 5 6 72 1 4 3 ...

2024-04-23 16:27:00 445

空空如也

空空如也

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

TA关注的人

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