自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 返回头节点的问题

【代码】返回头节点的问题。

2024-04-10 17:07:43 223

原创 蓝桥杯B组C题冶炼金属(二分查找)

这个炉子有一个称作转换率的属性V VV,V VV 是一个正整数,这意味着消耗V VV 个普通金属O OO 恰好可以冶炼出一个特殊金属X XX,当普通金属O OO 的数目不足V VV 时,无法继续冶炼。//假设arr[i]为 75 与 3,然后就可以分为三个区间,a:0--19,b:20--25,c:25--1e9。对于60 % 60\%60% 的评测用例,1 ≤ N ≤ 1 0 3 1 ≤ N ≤ 10^31≤N≤10。//75/a一定大于3 75/b一定为3 75/c一定小于3。

2023-04-22 16:08:16 1137 2

原创 Coronavirus(bfs)

来源:牛客网。

2023-04-07 19:53:57 294

原创 哈希表

首先要将数组的所有初始值设为无穷大,一般设为0x3f3f3f3f,然后直接memset( a,0x3f,sizeof a)就可以了。处理冲突用两张方法,开放寻址法或者拉链法。找到第一个符合条件的数。

2023-04-03 21:16:24 291

原创 1238. 日志统计(双指针)

具体来说,如果存在某个时刻 TT 满足该帖在 [T,T+D)[T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 KK 个赞,该帖就曾是”热帖”。如果一个帖子曾在任意一个长度为 DD 的时间段内收到不少于 KK 个赞,小明就认为这个帖子曾是”热帖”。表示在 tsts 时刻编号 idid 的帖子收到一个”赞”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。第一行包含三个整数 N,D,KN,D,K。现在小明想统计有哪些帖子曾经是”热帖”。

2023-04-01 16:41:05 236

原创 2816. 判断子序列(双指针)

给定一个长度为 nn 的整数序列 a1,a2,…,ana1,a2,…,an 以及一个长度为 mm 的整数序列 b1,b2,…,bmb1,b2,…而得的序列,例如序列 {a1,a3,a5}{a1,a3,a5} 是序列 {a1,a2,a3,a4,a5}{a1,a2,a3,a4,a5} 的一个子序列。第二行包含 nn 个整数,表示 a1,a2,…,ana1,a2,…第三行包含 mm 个整数,表示 b1,b2,…,bmb1,b2,…如果 aa 序列是 bb 序列的子序列,输出一行。子序列指序列的一部分项按。

2023-03-30 21:35:11 414

原创 800. 数组元素的目标和(双指针)

第一行包含三个整数 n,m,xn,m,x,分别表示 AA 的长度,BB 的长度以及目标值 xx。请你求出满足 A[i]+B[j]=xA[i]+B[j]=x 的数对 (i,j)(i,j)。给定两个升序排序的有序数组 AA 和 BB,以及一个目标值 xx。第二行包含 nn 个整数,表示数组 AA。第三行包含 mm 个整数,表示数组 BB。1≤数组元素≤1091≤数组元素≤109。共一行,包含两个整数 ii 和 jj。数组长度不超过 105105。数组下标从 00 开始。同一数组内元素各不相同。

2023-03-30 20:29:02 107

原创 字符串删减(双指针)

第二行包含一个长度为 nn 的由小写字母构成的字符串。现在,需要删掉其中的一些字母,使得字符串中不存在。给定一个由 nn 个小写字母构成的字符串。请问,最少需要删掉多少个字母?输出最少需要删掉的字母个数。如果字符串本来就不存在。,则无需删掉任何字母。第一行包含整数 nn。

2023-03-29 20:38:53 248

原创 730. 机器人跳跃问题(基础二分)

如果 H(k+1)>EH(k+1)>E,那么机器人就失去 H(k+1)−EH(k+1)−E 的能量值,否则它将得到 E−H(k+1)E−H(k+1) 的能量值。第二行是 NN 个空格分隔的整数,H(1),H(2),…,H(N)H(1),H(2),…编号为 00 的建筑高度为 00 个单位,编号为 ii 的建筑高度为 H(i)H(i) 个单位。假设机器人在第 kk 个建筑,且它现在的能量值是 EE,下一步它将跳到第 k+1k+1 个建筑。输出一个整数,表示所需的最少单位的初始能量值上取整后的结果。

2023-03-28 23:24:23 334

原创 分巧克力(二分)

例如一块 6×56×5 的巧克力可以切出 66 块 2×22×2 的巧克力或者 22 块 3×33×3 的巧克力。小明一共有 NN 块巧克力,其中第 ii 块是 Hi×WiHi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 NN 块巧克力中切出 KK 块巧克力分给小朋友们。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入保证每位小朋友至少能获得一块 1×11×1 的巧克力。输出切出的正方形巧克力最大可能的边长。小明拿出了珍藏的巧克力招待小朋友们。

2023-03-28 10:20:26 370

原创 四平方和(二分)

并对所有的可能表示法按 a,b,c,da,b,c,d 为联合主键升序排列,最后输出第一个表示法。如果把 00 包括进去,就正好可以表示为 44 个数的平方和。每个正整数都可以表示为至多 44 个正整数的平方和。对于一个给定的正整数,可能存在多种平方和的表示法。输出4个非负整数,按从小到大排序,中间用空格分开。(有些数据就是不行。输入一个正整数 NN。

2023-03-27 21:07:35 169

原创 K倍区间(前缀和)

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

2023-03-24 00:00:55 100

原创 截断数组(前缀和)

所有测试点满足 1≤n≤1051≤n≤105,−10000≤ai≤10000−10000≤ai≤10000。给定一个长度为 nn 的数组 a1,a2,…,ana1,a2,…第二行包含 nn 个整数 a1,a2,…,ana1,a2,…前六个测试点满足 1≤n≤101≤n≤10。现在,要将该数组从中间截断,得到三个。要求,三个子数组内各元素之和都相等。请问,共有多少种不同的截断方法?输出一个整数,表示截断方法数量。第一行包含整数 nn。

2023-03-23 23:21:34 126

原创 走迷宫(BFS)

给定一个n\times mn×m的网格,在网格中每次在不超过边界的情况下可以选择向上、向下、向左、向右移动一格。网格中的一些格子上放置有障碍物,放有障碍物的格子不能到达。求从(x_s,y_s)(xs​,ys​)到(x_t,y_t)(xt​,yt​)最少的移动次数。若不能到达,输出-1−1。

2023-03-15 22:16:59 1951 1

原创 树与图的遍历(bfs)

接下来 mm 行,每行包含两个整数 aa 和 bb,表示存在一条从 aa 走到 bb 的长度为 11 的边。请你求出 11 号点到 nn 号点的最短距离,如果从 11 号点无法走到 nn 号点,输出 −1−1。给定一个 nn 个点 mm 条边的有向图,图中可能存在重边和自环。输出一个整数,表示 11 号点到 nn 号点的最短距离。所有边的长度都是 11,点的编号为 1∼n1∼n。第一行包含两个整数 nn 和 mm。

2023-02-04 22:18:53 424 1

原创 树的重心(树和图的遍历--dfs)

重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。接下来 n−1n−1 行,每行包含两个整数 aa 和 bb,表示点 aa 和点 bb 之间存在一条边。给定一颗树,树中包含 nn 个结点(编号 1∼n1∼n)和 n−1n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。输出一个整数 mm,表示将重心删除后,剩余各个连通块中点数的最大值。第一行包含整数 nn,表示树的结点数。

2023-02-03 22:09:43 473 1

原创 KMP算法

已知next[4]求next[5],首先使i加一,也就是加了一个‘a’,然后看上面的s[4]是否与下面的s[j+1]相等,若相等,则j++。如图,若要是缩短,则先不用考虑i=4位置的字母是什么,先考虑让前缀的前一部分(也就是紫色的“ab”)等于后缀的前一部分(也就是绿色的“ab”),若是相等了再考虑i=4的位置。给定一个字符串 SS,以及一个模式串 PP,所有字符串中只包含大小写英文字母以及阿拉伯数字。共一行,输出所有出现位置的起始下标(下标从 00 开始计数),整数之间用空格隔开。

2023-01-27 23:26:49 294 1

原创 单调队列

第一行包含两个整数 nn 和 kk,分别代表数组长度和滑动窗口的长度。有一个大小为 kk 的滑动窗口,它从数组的最左边移动到最右边。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。第一行输出,从左至右,每个位置滑动窗口中的最小值。第二行输出,从左至右,每个位置滑动窗口中的最大值。//判断队头是否已经移出滑动窗口。给定一个大小为 n≤106n≤106 的数组。第二行有 nn 个整数,代表数组的具体数值。你只能在窗口中看到 kk 个数字。每次滑动窗口向右移动一个位置。同行数据之间用空格隔开。

2023-01-24 22:20:22 176 1

原创 模拟栈

共一行,包含 NN 个整数,其中第 ii 个数表示第 ii 个数的左边第一个比它小的数,如果不存在则输出 −1−1。给定一个长度为 NN 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1−1。1≤数列中元素≤1091≤数列中元素≤109。第二行包含 NN 个整数,表示整数数列。第一行包含整数 NN,表示数列长度。

2023-01-18 12:07:19 533

原创 双链表

idx = 2;e[idx] = x;l[idx] = k;r[k] = idx;idx++;e[idx] = x;r[idx] = k;l[k] = idx;idx++;int main()

2023-01-18 11:11:42 457

原创 单链表

/传入函数的k应该是k-1,链表中的下标是从0开始的。ne[i] 表示节点i的next指针是多少。idx 存储当前已经用到了哪个点。3.插入:将x插到下标是k的点后面。//ne[i]指的是i所指向的值。5.将下标是k的点后面的点删掉。head 表示头结点的下标。4.将x插到下标是k的点后面。e[i] 表示节点i的值。步骤:1.初始化head。

2023-01-17 11:00:05 339

原创 BFS(走迷宫)

给定一个 n×mn×m 的二维整数数组,用来表示一个迷宫,数组中只包含 00 或 11,其中 00 表示可以走的路,11 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)(1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。数据保证 (1,1)(1,1) 处和 (n,m)(n,m) 处的数字为 00,且一定至少存在一条通路。请问,该人从左上角移动至右下角 (n,m)(n,m) 处,至少需要移动多少次。输出一个整数,表示从左上角移动至右下角的最少移动次数。

2023-01-14 19:48:56 261

原创 【无标题】

编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。(将每个单词通过建立find函数存储起来,然后倒叙输出)输入为一个字符串(字符串长度至多为 100 )。输出为按要求排序后的字符串。

2023-01-08 16:27:52 306

原创 【无标题】

其中 yy 为最小值元素的下标(下标从 00 开始计数)。输入一个整数 NN 和一个长度为 NN 的整数数组 XX。第二行包含 NN 个用空格隔开的整数 X[i]X[i]。请你找到数组中最小的元素,并输出它的值和下标。注意,如果有多个最小值,则返回下标最小的那个。,其中 xx 为数组元素最小值。第一行包含整数 NN。

2023-01-05 18:15:09 313 1

原创 B.合并数列(SB题)

给定两个长度分别为n和m(n和m的长度不大于10000)的非递减整数数列a(a0,a1,a2,...,an-1)和b(b0,b1,b2,...,bm-1),数列中各个整数的取值范围[0,100)。现在对这两个数列进行合并得到新数列c(c0,c1,c2,...,cn+m-1),并保证数列c仍然是非递减的。输出合并后数列c的各项,并把该数列c中出现次数最多的最小整数及其出现的次数输出。第二行输入的是长度为n的数列的各项,数据之间由空格分隔。第三行输入的是长度为m的数列的各项,数据之间由空格分隔。

2022-12-26 22:15:21 265 1

原创 D.类的继承与派生

private:public:{}};{}};{public:{}{}};int main(){}

2022-12-18 11:52:10 621

原创 E.冰壶比赛

int n, m;{public:};{{}}int main(){i < n;i++){}i < n;i++){j++){}}i < n;i++){}}

2022-12-18 11:00:13 515

原创 F.比武大赛(如何表示字符串为空)

string name;若想表示字符串为空:1:name=="";2:name.length()

2022-12-16 23:50:29 581

原创 E.施工计算

int Zcount;int Zprice;int FLcost;

2022-12-16 23:10:36 468

原创 D.Teacher_Cadre

{protected:public:}}}age = a;title = t;}};{public:{}{}{}{}};int main(){}}else {}}

2022-12-16 22:49:19 244

原创 C.BOXER

protected:public:}}item = i;}};{public:{}{}{}{}};int main(){}}}

2022-12-15 00:36:12 173

原创 B.不菲的价格

protected:public:}}}}};class Ring{public:{}{}{}{}};int main(){Ring r;int p;}

2022-12-14 19:02:01 387

原创 A.运动会

int places;//本学院团体总分排名。

2022-12-14 18:37:02 316

原创 G.运算符重载的练习3

{public:};{}{}{}{}

2022-12-14 17:45:21 206

原创 F.运算符重载的练习2

class Rect{public:};{}{}{}}

2022-12-14 15:22:45 169

原创 E.运算算符重载的练习1

{public:};{}{}{}{}int main(){}

2022-12-14 15:08:59 224

原创 D.友元的练习

{private:public:{}};{private:public:{}};{}{}{}int main(){i < 2;i++)}

2022-12-14 12:31:34 175

原创 C.射击成绩

{public:{}};{int n;i < n;i++){}i < n;i++){j++){}}i < n;i++){}}

2022-12-14 11:39:24 329

原创 LCD

666

2022-12-05 20:00:24 64

原创 BFS(宽度优先搜索)

给定一个 n×mn×m 的二维整数数组,用来表示一个迷宫,数组中只包含 00 或 11,其中 00 表示可以走的路,11 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)(1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。数据保证 (1,1)(1,1) 处和 (n,m)(n,m) 处的数字为 00,且一定至少存在一条通路。请问,该人从左上角移动至右下角 (n,m)(n,m) 处,至少需要移动多少次。输出一个整数,表示从左上角移动至右下角的最少移动次数。

2022-11-25 20:56:07 50

空空如也

空空如也

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

TA关注的人

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