自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 完美牛棚(匈牙利算法)

也就是二分匹配的问题,考虑该房间是否已经匹配,选择两种做法,1.该房间为空,该奶牛可以直接入住 2.该房间已经匹配奶牛,那么看是否可以为其匹配另一个房间,则该房间由这头奶牛入住。给定奶牛的住宿喜好,请你计算,通过合理分配奶牛的住所,最多能够让多少奶牛可以住在自己愿意产奶的单间中。在过去的一周中,农夫约翰一直在收集有关哪些奶牛愿意在哪些单间产奶的数据。一个单间只能分配给一头奶牛,当然,一头奶牛也可能只愿意在一个单间中产奶。输出一个整数,表示可以被分配在自己愿意产奶的单间中的奶牛的最大数量。

2023-03-14 13:48:14 550

原创 二叉树(图论)

画个树模拟一下样例,假设询问点为a,b。距离则为dist[a] + dist[b] 减去这俩点第一个公共父节点到一号点的距离的两倍就可以得出答案。接下来 n 行,每行包含两个整数,其中第 i 行的整数表示结点 i 的子结点编号。如果没有子结点则输出 −1。给定一个 n 个结点(编号 1∼n)构成的二叉树,其根结点为 1 号点。每组测试数据输出 m 行,代表查询的两个结点之间的最短路径长度。接下来 m行,每行包含两个整数,表示要询问的两个结点的编号。进行 m 次询问,每次询问两个结点之间的最短路径长度。

2023-03-13 23:43:41 185

原创 城市通电(prim算法)

注意,任意两个城市之间最多只需要搭建一根电线,也就是说,对于每个 (a,b),不要有多余的 (a,b) 或 (b,a) 输出。本题要将所有城市连接起来,两种方式,一是直接连接发电站,花费为c[i],二是连接一个城市,该城市已经直接连接或者间接连接发电站。第三行输出 v 个整数,表示建立发电站的城市编号,注意输出编号要在范围 [1,n]内。一个城市如果建有发电站,或者通过电线直接或间接的与建有发电站的城市保持连通,则该城市通电。请问,如何合理设计通电方案,可以使得所有城市都成功通电,且花费最少?

2023-03-08 15:03:52 520

原创 作物杂交(spfa()算法)

输入的第 1 行包含 4 个整数 N,M,K,T,N 表示作物种类总数 (编号 1 至 N),M 表示初始拥有的作物种子类型数量,K 表示可以杂交的方案数,T 表示目标种子的编号。第 4 至 K+3 行,每行包含 3 个整数 A,B,C,表示第 A类作物和第 B 类作物杂交可以获得第 C� 类作物的种子。第 6 天至第 10 天,将编号 1 与编号 3 的作物杂交,得到编号 4 的作物种子。第 1 天至第 5 天,将编号 1 与编号 2 的作物杂交,得到编号 3 的作物种子。

2023-03-07 23:35:52 375

原创 铁路与公路

请你为它们规划行进路线,每条路线中可重复经过同一条铁路或公路,但是为了避免发生事故,火车和汽车不得同时到达同一个城市(城市 n除外)。请问,在这些条件的约束下,两辆车全部到达城市 n 所需的最少小时数,即求更慢到达城市 n 的那辆车所需的时间的最小值。接下来 m 行,每行包含两个整数 u,v,表示城市 u 和城市 v 之间存在一条铁路。所有测试点满足 2≤n≤400,0≤m≤n(n−1)/2,1≤u,v≤n。现在有一列火车和一辆汽车同时离开城市 1,它们的目的地都是城市 n。对于每对不同的城市 x,y,

2023-03-07 21:49:42 231

原创 最短距离(dijkstra)

接下来 M 行,每行包含三个整数 ai,bi,ci,表示第 i 条道路连接村庄 ai 和村庄 bi,长度是 ci。接下来 Q 行,每行包含一个整数 yk,表示询问编号为 yk 的村庄与其距离最近的商店之间的距离。然后给出 Q 个询问,第 k 个询问给出一个村庄的编号 yk,问该村庄距离最近的商店有多远?接下来 K 行,每行包含一个整数 xj,表示第 j 个有商店的村庄编号是 xj。道路,第 i 条道路连接村庄 ai 和村庄 bi,长度是 ci。共有 K 个村庄有商店,第 j 个有商店的村庄编号是 xj。

2023-03-06 13:41:15 309

原创 构造有向无环图(拓扑排序)

接下来 m 行,每行包含三个整数 t,x,y,用来描述一条边的信息,其中 t 表示边的状态,如果 t=0,则表示边是无向边,如果 t=1,则表示边是有向边。x,y 表示这条边连接的两个端点,如果是有向边则边的方向是从 x 指向 y。对于全部测试点,1≤T≤20000,2≤n≤2×10^5,1≤m≤min(2×10^5,n(n−1)/2),0≤t≤1,1≤x,y≤n。,随后 m 行,每行包含两个整数 x,y,用来描述最终构造成的有向无环图中的每条边的具体方向(x 指向 y),边的先后顺序随意。

2023-03-06 12:37:37 613

原创 货仓选址(贪心)

依据贪心的做法的话,那选的地方肯定要放在所有位置的中间位置,才能使得距离之和为最小值。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。如果有奇数个点的话,直接取排序后位置最中间那一个点 作为货仓地址就好了。在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN。偶数的话,取最中间的两个位置 的中点为货仓地址。输出一个整数,表示距离之和的最小值。第二行 N 个整数 A1∼AN。第一行输入整数 N。

2023-03-01 15:12:34 59

原创 排队打水(贪心,排序不等式)

有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?因为第 i 个人打水要打 t [ i ] 时间,所以没有打水的人的等待时长为 ( n - i )* t [ i ].第二行包含 n 个整数,其中第 i 个整数表示第 i 个人装满水桶所花费的时间 ti。当 i 越小 ( n - i ) 越大,为了让和最小,必须让 t [ i ] 尽可能小。输出一个整数,表示最小的等待时间之和。第一行包含整数 n。

2023-03-01 14:53:09 245

原创 蓝桥杯每日一题:不同路径数(dfs深度优先)

这题用到深度优先搜索,搜索k次,判断组成的k+1位数是否出现过,未出现过则答案+1.从矩阵中的任意位置出发,每次可以沿上下左右四个方向前进一步,走过的位置可以重复走。给定一个 n×m的二维矩阵,其中的每个元素都是一个 [1,9] 之间的正整数。对于 100% 的数据,1≤n,m≤5,0≤k≤5,m×n>1。输出一个整数,表示可以走出的不同 (k+1) 位数的个数。走了 k 次后,经过的元素会构成一个 (k+1) 位数。对于 30% 的数据, 1≤n,m≤2,0≤k≤2。第一行包含三个整数 n,m,k。

2023-03-01 14:23:14 283

原创 acwing1562 微博转发(宽搜)

当用户在微博上发布帖子时,他/她的所有关注者都可以查看并转发他/她的帖子,然后这些人的关注者可以对内容再次转发…最后一行首先包含一个整数 K,表示询问次数,然后包含 K 个用户编号,表示询问这些人的帖子的最大可能转发量。如果 B 是 A 的关注者,C 是 B 的关注者,那么 A 的第一层关注者是 B,第二层关注者是 C。现在给定一个社交网络,假设只考虑 L 层关注者,请你计算某些用户的帖子的最大可能转发量。第一行包含两个整数,N 表示用户数量,L 表示需要考虑的关注者的层数。是第 i 名用户关注的总人数,

2023-02-28 19:57:34 479

原创 滑雪(记忆化搜索)

在给定矩阵中,最长的滑行轨迹为 25−24−23−…−3−2−125−24−23−…现在给定你一个二维矩阵表示滑雪场各区域的高度,请你找出在该滑雪场中能够完成的最长滑雪轨迹,并输出其长度(可经过最大区域数)。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。在给定矩阵中,一条可行的滑行轨迹为 24−17−2−124−17−2−1。给定一个 R 行 C 列的矩阵,表示一个矩形网格滑雪场。

2023-02-27 14:15:53 102

原创 285.没有上司的舞会(树形dp)

在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。每一个点分为选该点和不选该点,以根节点判断取还是不取,每次更新取得时候得最大值和不取得时候的最大值。接下来 N−1 行,每行输入一对整数 L,K,表示 K 是 L 的直接上司。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。接下来 N 行,第 i 行表示 i 号职员的快乐指数 Hi。Ural 大学有 N 名职员,编号为 1∼N。

2023-02-27 13:41:58 66

原创 acwing3485最大异或和(trie树,贪心)

这里用到了前缀异或和,当超出m的限制时需要将区间往后移,所以额外声明cnt数组来判断该点是否存在所求的区间里,于是在插入操作时额外定义一个参数v表示插入或者删去。对于 100%100% 的数据,1≤M≤N≤10^5,0≤ai≤2^31−1。子数组的异或和即为子数组中所有元素按位异或得到的结果。对于 50%50% 的数据,1≤M≤N≤1000。给定一个非负整数数列 a�,初始长度为 N�。对于 20%20% 的数据,1≤M≤N≤100。子数组中,找出子数组异或和的最大值。输出可以得到的子数组异或和的最大值。

2023-02-26 20:45:51 284

原创 141周期acwing(kmp)

换言之,对于每一个从头开始的长度为 i(i>1)的前缀,是否由重复出现的子串 A 组成,即 AAA…如果存在,请找出最短的循环节对应的 K 值(也就是这个前缀串的所有可能重复节中,最大的 K 值)。接下来的每一行,输出具有循环节的前缀的长度 i 和其对应 K,中间用一个空格隔开。一个字符串的前缀是从第一个字符开始的连续若干个字符,例如。我们希望知道一个 N 位字符串 S 的前缀是否具有循环节。输入包括多组测试数据,每组测试数据包括两行。输入数据以只包括一个 0 的行作为结尾。第二行输入字符串 S。

2023-02-26 19:44:48 266

原创 裁剪序列(单调队列,贪心,dp,multiset,双指针)

给定一个长度为 N 的序列 A,要求把该序列分成若干段,在满足“每段中所有数的和”不超过 M 的前提下,让“每段中所有数的最大值”之和最小。第二行包含 N 个整数,表示完整的序列 A。涉及动态规划,贪心,单调队列和双指针。序列A中的数非负,且不超过10^6。第一行包含两个整数 N和 M。如果结果不存在,则输出 −1。输出一个整数,表示结果。

2023-02-26 19:15:11 90

原创 1249 亲戚(并查集)

如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。对于每个询问 ci,di,输出一行:若 ci 和 di 为亲戚,则输出“Yes”,否则输出“No”。请写一个程序,对于我们的关于亲戚关系的提问,以最快的速度给出答案。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。或许你并不知道,你的某个朋友是你的亲戚。

2023-02-26 17:16:54 213 1

原创 拼数(一般贪心)

来源:牛客网题号:NC16783时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。

2023-02-26 17:10:22 464

原创 树的遍历(宽搜,递归)

官方并未给出各节点权值的取值范围,为方便起见,在本网站范围取为 1∼N。现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。第二行包含 N 个整数,表示二叉树的后序遍历。第三行包含 N 个整数,表示二叉树的中序遍历。输出一行 N 个整数,表示二叉树的层序遍历。一个二叉树,树中每个节点的权值互不相同。第一行包含整数 N,表示二叉树的节点数。首先给了我们中序遍历和后续遍历。

2023-02-21 18:00:54 65

原创 约数(最大公约数 、约数个数 、 约数之和)

来自acwing872.最大公约数。acwing871.约数之和。acwing870.约数个数。

2023-02-20 14:18:39 73

原创 区间选点acwing905(贪心算法)

本题考虑贪心做法,遍历枚举每一个区间,以右端点为准,如果后面每一个区间左端点严格大于该右端点,更新ed为该区间的右端点,答案+1.同理,如果不大于,证明该区间重合,不做任何处理。给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。接下来 N 行,每行包含两个整数 ai,bi,表示一个区间的两个端点。最后判断之后的左端点是否严格大于当前的右端点,是的话更新右端点和答案。所以需要创建结构体存储每个区间的左端点,右端点。输出一个整数,表示所需的点的最小数量。

2023-02-19 21:21:54 57

原创 二分图的最大匹配(匈牙利算法)

如果该点找到的右半部分的点已经匹配成功,则就看该右半部分的这个点 已经匹配成功的左半部分的 这个点,是否可以为它重新匹配,寻找下家。二分图的匹配:给定一个二分图 G,在 G 的一个子图 M 中,M 的边集 {E} 中的任意两条边都不依附于同一个顶点,则称 M 是一个匹配。接下来 m 行,每行包含两个整数 u 和 v,表示左半部点集中的点 u 和右半部点集中的点 v 之间存在一条边。二分图的最大匹配:所有匹配中包含边数最多的一组匹配被称为二分图的最大匹配,其边数即为最大匹配数。请你求出二分图的最大匹配数。

2023-02-19 20:55:41 136

原创 染色法判定二分图

接下来 m 行,每行包含两个整数 u 和 v,表示点 u 和点 v 之间存在一条边。用自定义dfs()进行染色,定义一旦返回结果为false证明存在矛盾。给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。第一行包含两个整数 n 和 m。请你判断这个图是否是二分图。如果给定图是二分图,则输出。

2023-02-19 19:48:09 36

原创 kruskal算法求最小生成树(并查集)

由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。共一行,若存在最小生成树,则输出一个整数,表示最小生成树的树边权重之和,如果最小生成树不存在则输出。给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出。

2023-02-18 15:37:11 123

原创 prim算法求最小生成树 858acwing

由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。接下来 m 行,每行包含三个整数 u,v,w,表示点 u 和点 v 之间存在一条权值为 w 的边。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。共一行,若存在最小生成树,则输出一个整数,表示最小生成树的树边权重之和,如果最小生成树不存在则输出。最近的点,计算到 集合 的最短距离。

2023-02-18 00:06:26 60

原创 floyd算法 求最短路acwing854

再给定 k 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出。接下来 m 行,每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。接下来 k 行,每行包含两个整数 x,y,表示询问点 x 到点 y 的最短距离。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。共 k 行,每行输出一个整数,表示询问的结果,若询问两点间不存在路径,则输出。数据保证图中不存在负权回路。该类算法原理是动态规划。

2023-02-17 21:34:33 65

原创 spfa()判断负环 acwing.852

类似与spfa()求最短路,只需在原基础上稍微改动,增加一个cnt数组,存储当前到现在的点的边数,若果存在负环,那原来的dist距离数组在该点位会不断更新,这时候cnt数组更新时每次多1;接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。不同的是,开始不能只将1号点位放入数组,因为一号点可能到不了负环上面的点,所以要将所有点位放入队列。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,详细见代码,以邻接表的方式存储,用队列来更新每个点位。

2023-02-17 20:51:31 33

原创 acwing3777.砖块(递推)

递推的过程,首先看可不可以把砖块全部变成W,就用check()函数实现,遍历每个砖块,如果砖块表示为B,就将他变为W,同时s[i+1]也要变成相反的,判断最后一位是不是不用变。其中 pi 表示第 i 次操作,选中的砖块为 pi 和 pi+1 号砖块。你的目标是通过不超过 3n 次操作,将所有砖块的颜色变得一致。,则表示第 i 号砖块是白色的,如果第 i 个字符是。否则,首先输出一行 k,表示需要的操作次数。每个砖块要么是黑色的,要么是白色的。,则表示第 i 个砖块是黑色的。,如果第 i 个字符是。

2023-02-17 20:00:08 140

原创 牛客.送外卖题解(深度优先搜索)

来源:牛客网n 个小区排成一列,编号为从 0 到 n-1。一开始,美团外卖员在第0号小区,目标为位于第 n-1 个小区的配送站。给定两个整数数列 a[0]~a[n-1] 和 b[0]~b[n-1] ,在每个小区 i 里你有两种选择:1) 选择a:向前 a[i] 个小区。2) 选择b:向前 b[i] 个小区。把每步的选择写成一个关于字符 ‘a’ 和 ‘b’ 的字符串。求到达小区n-1的方案中,字典序最小的字符串。如果做出某个选择时,你跳出了这n个小区的范围,则这个选择不合法。

2023-02-17 17:04:40 130

原创 spfa算法 acwing851.spfa求最短路

接下来 m 行每行包含三个整数 x,y,z表示存在一条从点 x 到点 y 的有向边,边长为 z。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,类似于dijkstra()算法,每次更新该点的每一条出边。输出一个整数,表示 11 号点到 n� 号点的最短距离。图中涉及边长绝对值均不超过 10000。第一行包含整数 n 和 m。数据保证不存在负权回路。如果路径不存在,则输出。同样是邻接表的存储方式。

2023-02-16 23:41:51 78

原创 bellman_ford算法 由边数限制的最短路

以及要考虑到返回的数据值,如果dist【n】数据已被更新,返回d【n】,未被更新返回-1或者其他值来判断输出情况,要考虑最后d【n】被更新时恰好等于 判断未被更新的返回值的情况。防止发生串联的情况,例如1-2-3这是一条路径,边数限制k=1时,不备份的话我们可能先将dist【2】的数值更新,再用该数值将dist【3】给更新了。请你求出从 1 号点到 n号点的最多经过 k 条边的最短距离,如果无法从 1 号点走到 n 号点,输出。输出一个整数,表示从 1 号点到 n 号点的最多经过 k 条边的最短距离。

2023-02-16 20:00:11 59

原创 dijkstra求最短路(堆优化版本)

用优先队列模拟堆,并且是小根堆,先将已知的一号点和距离放入小根堆,每次取出堆顶,作为起点,寻找该点的出边也就是距离该点最近的点,判断 如果dist【j】>现在的distance+t到该点的边长权值,用取出的堆顶元素更新距离。堆优化版其实就是存储结构不同,这里因为是稀疏图,用邻接表的方式存储,相对于普通的邻接表母版,存储时多一个边长的权值就可以。请你求出 1号点到 n 号点的最短距离,如果无法从 1 号点走到 n号点,则输出 −1。输出一个整数,表示 1 号点到 n 号点的最短距离。看看代码,有注释详解。

2023-02-16 19:15:08 118

原创 朴素版dijkstra算法(acwing 849求最短路)

接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z�。请你求出 1号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。给定一个 n个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。类似贪心,每次取不在路径中的最近的点,判断将其放入是否可以更新最短距离。输出一个整数,表示 1 号点到 n� 号点的最短距离。图中涉及边长均不超过10000。如果路径不存在,则输出 −1。第一行包含整数 n 和 m。

2023-02-16 00:04:53 71

原创 acwing848 有向图的拓扑排序(图论)

若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。首先思考,如果无环图即满足拓扑排序,是否可以将该节点的所有 出边 删去,结果使得每个节点的入度是0,满足入度是0,则将其存储起来。接下来 m 行,每行包含两个整数 x 和 y,表示存在一条从点 x 到点 y的有向边 (x,y)。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。共一行,如果存在拓扑序列,则输出任意一个合法的拓扑序列即可。

2023-02-15 22:01:06 53

原创 acwing847.图中点的层次( 宽度优先搜索,图论 )

接下来 m� 行,每行包含两个整数 a和 b,表示存在一条从 a 走到 b 的长度为 1 的边。请你求出 1号点到 n 号点的最短距离,如果从 1 号点无法走到 n 号点,输出 −1。给定一个 n个点 m 条边的有向图,图中可能存在重边和自环。输出一个整数,表示 11 号点到 n 号点的最短距离。所有边的长度都是 1,点的编号为 1∼n。同样是宽度优先搜索,看代码,注释有详解。第一行包含两个整数 n 和 m。

2023-02-15 21:00:01 62

原创 acwing845.八数码(宽搜bfs(),队列)

现在,给你一个初始网格,请你求出得到正确排列至少需要进行多少次交换。在一个 3×3 的网格中,1∼8 这 8 个数字和一个。与其上、下、左、右四个方向之一的数字交换(如果存在)。先后与右、下、右三个方向的数字交换成功得到正确排列。恰好不重不漏地分布在这 3×3 的网格中。输入占一行,将 3×3 的初始网格描绘出来。输出占一行,包含一个整数,表示最少交换次数。如果不存在解决方案,则输出 −1−1。同样是宽度优先搜索,用队列解决。例如,示例中图形就可以通过让。在游戏过程中,可以把。代码如下,注释有详解。

2023-02-15 20:22:08 62

原创 acwing844.走迷宫

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

2023-02-15 20:02:40 76

原创 acwing846.树的重心(数据结构,树,深度优先搜索)

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

2023-02-15 19:53:46 57

原创 acwing868.筛质数(线性筛法and埃氏筛法)

/表面prime[j]一定是i的最小质因子。//以每个合数的最小质因子筛掉这个合数。//把质数的倍数删掉。//prime存质数。bool st[N];给定一个正整数 n,请你求出 1∼n 中质数的个数。共一行,包含一个整数,表示 1∼n中质数的个数。共一行,包含整数 n。

2023-02-13 16:23:11 38

原创 acwing143.最大异或对(trie树解法)

在给定的 N� 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少。第二行输入 N� 个整数 A1~AN。第一行输入一个整数 N�。输出一个整数表示答案。

2023-02-13 11:25:13 51

空空如也

空空如也

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

TA关注的人

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