洛谷
洛谷
zhengjq~
devops运维领域优质创作者。运维开发,数据挖掘,算法程序设计,云原生,自动化运维
展开
-
二分-木材加工
例如有两根原木长度分别为 11 和 21,要求切割成等长的 6 段,很明显能切割出来的小段木头长度最长为 55。对于 100% 的数据,有 1≤n≤10^5,1≤k≤10^8,1≤Li≤10^8(i∈[1,n])。木头长度的单位是 cm,原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。第一行是两个正整数 n,k,分别表示原木的数量,需要得到的小段的数量。当然,我们希望得到的小段木头越长越好,请求出 l 的最大值。接下来 n 行,每行一个正整数 Li,表示一根原木的长度。原创 2023-04-06 15:42:01 · 78 阅读 · 0 评论 -
二分 - A-B 数对
给出一串正整数数列以及一个正整数 C,要求计算出所有满足 A - B = C 的数对的个数(不同位置的数字一样的数对算不同的数对)。相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!对于 100% 的数据,1≤N≤2×10^5,0≤ai<2^{30}, 1≤C<2^{30}。一行,表示该串正整数中包含的满足 A - B = C的数对的个数。思路:转化为A=B+C 遍历B 查找数组里B+C的个数。第二行,N 个正整数,作为要求处理的那串数。原创 2023-04-06 15:07:34 · 41 阅读 · 0 评论 -
二分-查找
输入 n 个不超过 10^9 的单调不减的(就是后面的数字不小于前面的数字)非负整数 a1,a2,…对于每次询问,给出一个整数 q,要求输出这个数字在序列中第一次出现的编号,如果没有找到的话输出 −1。数据保证,1≤n≤10^6,0≤ai,q≤10^9,1≤m≤10^5。第三行 m 个整数,表示询问这些数字的编号,从 1 开始编号。第一行 2 个整数 n 和 m,表示数字个数和询问次数。输出一行,m 个整数,以空格隔开,表示答案。第二行 n 个整数,表示这些待查询的数字。原创 2023-04-06 11:36:33 · 42 阅读 · 0 评论 -
BFS-小明的游戏
游戏的规则很简单:给定一个起始位置和一个目标位置,小明每一步能向上,下,左,右四个方向移动一格。如果移动到同一类型的格子,则费用是0,否则费用是1。输入接下来一行有四个整数x1,y1,x2,y2,分别为起始位置和目标位置。对于每组数据,输出从起始位置到目标位置的最小花费。输入第一行包含两个整数n,m,分别表示棋盘的行数和列数。对于100%的数据满足:1≤n,m≤500。对于40%的数据满足:1≤n,m≤300。对于20%的数据满足:1≤n,m≤10。当输入n,m均为0时,表示输入结束。原创 2023-04-05 21:36:16 · 108 阅读 · 0 评论 -
BFS+二分-汽车拉力比赛
组织者希望给整个路线指定一个难度系数D,这样参赛选手从任一路标到达别的路标所经过的路径上相邻单元格的海拔高度差不会大于D。也就是说这个难度系数D指的是保证所有路标相互可达的最小值。任一单元格和其东西南北四个方向上的单元格都是相邻的。赛场凹凸不平,所以被描述为M*N的网格来表示海拔高度(1≤ M,N ≤500),每个单元格的海拔范围在0到10^9之间。第一行两个整数M和N。第2行到第M+1行,每行N个整数描述海拔高度。行,每行N个整数,每个数非0即1,1表示该单元格是一个路标。一个整数,即赛道的难度系数D。原创 2023-04-05 20:39:06 · 24 阅读 · 0 评论 -
BFS-Meteor Shower S
根据预报,一共有 M 颗流星 (1≤M≤50,000) 会坠落在农场上,其中第 i 颗流星会在时刻 Ti 砸在坐标为 (Xi,Yi)(0≤Xi≤300,0≤Yi≤300) 的格子里。流星的力量会将它所在的格子,以及周围 4 个相邻的格子都化为焦土,当然贝茜也无法再在这些格子上行走。贝茜在时刻 0 开始行动,它只能在第一象限中,平行于坐标轴行动,每 1 个时刻中,她能移动到相邻的(一般是 4 个)格子中的任意一个,当然目标格子要没有被烧焦才行。贝西一开始在 (0,0)。如果不可能到达输出 −1。原创 2023-04-05 16:37:23 · 33 阅读 · 0 评论 -
BFS-填涂颜色
由数字 0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 1 构成,围圈时只走上下左右 4 个方向。现要求把闭合圈内的所有空间都填写成 2。每组测试数据第一行一个整数 n(1≤n≤30)。方阵内只有一个闭合圈,圈内至少有一个 0。对于 100% 的数据,1≤n≤30。已经填好数字 2 的完整方阵。原创 2023-04-05 15:35:23 · 30 阅读 · 0 评论 -
BFS-血色先锋队
孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好聚集了起来,以抵抗天灾军团的围剿。可怕的是,他们之中有人感染上了亡灵瘟疫,如果不设法阻止瘟疫的扩散,很快就会遭到灭顶之灾。无需惊讶,你就是那个叛徒。你已经掌握了感染源的位置,任务是算出血色先锋军的领主们感染瘟疫的时间,并且将它报告给巫妖王,以便对血色先锋军进行一轮有针对性的围剿。第 1 行:四个整数 n,m,a,b,表示军团矩阵有 n 行 m 列。接下来 b 行:每行有两个整数 x,y,表示领主的位置在第 x 行第 y 列。原创 2023-04-05 14:48:33 · 43 阅读 · 0 评论 -
BFS-马的遍历
有一个 n×m 的棋盘,在某个点 (x, y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。一个 n×m 的矩阵,代表马到达某个点最少要走几步(不能到达则输出 −1)。对于全部的测试点,保证 1≤x≤n≤400,1≤y≤m≤400。输入只有一行四个整数,分别为 n, m, x, y。原创 2023-04-05 14:20:03 · 20 阅读 · 0 评论 -
dfs or dp - 题目描述
将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1.问有多少种不同的分法。原创 2023-04-04 15:46:56 · 22 阅读 · 0 评论 -
dfs-Lake Counting S
一个网格与其周围的八个网格相连,而一组相连的网格视为一个水坑。约翰想弄清楚他的田地已经形成了多少水坑。给出约翰田地的示意图,确定当中有多少水坑。由于近期的降雨,雨水汇集在农民约翰的田地不同的地方。我们用一个 N×M(1≤N≤100,1≤M≤100) 的网格图表示。第 2 行到第 N+1 行:每行 M 个字符,每个字符是。输入第 1 行:两个空格隔开的整数:N 和 M。,它们表示网格图中的一排。输出一行,表示水坑的数量。原创 2023-04-04 12:43:00 · 33 阅读 · 0 评论 -
dfs-入门
有的瓷砖可以踩,我们认为是安全的,而有的瓷砖一踩上去就会有喷出要命的毒气,那你就死翘翘了,我们认为是不安全的。你只能从一块安全的瓷砖上走到与他相邻的四块瓷砖中的任何一个上,但它也必须是安全的才行。由于你是黄蓉的朋友,她事先告诉你哪些砖是安全的、哪些砖是不安全的,并且她会指引你飞到第一块砖上(第一块砖可能在任意安全位置),现在她告诉你进入桃花岛的秘密就是:如果你能走过最多的瓷砖并且没有死,那么桃花岛的大门就会自动打开了,你就可以从当前位置直接飞进大门了。对于全部的测试点,保证1≤W,H≤20。原创 2023-04-04 11:45:06 · 28 阅读 · 0 评论 -
BFS,DFS-奇怪的电梯
大楼的每一层楼都可以停电梯,而且第 i 层楼(1≤i≤N)上有一个数字 Ki(0≤Ki≤N)。电梯只有四个按钮:开,关,上,下。例如: 3,3,1,2,5 代表了 Ki(K1=3,K2=3,……),从 1 楼开始。在 1 楼,按“上”可以到 4 楼,按“下”是不起作用的,因为没有 −2 楼?第一行为三个用空格隔开的正整数,表示 N, A, B(1≤N≤200,1≤A,B≤N)对于 100% 的数据,1≤N≤200,1≤A,B≤N,0≤Ki≤N。一行,即最少按键次数,若无法到达,则输出。原创 2023-04-04 00:21:18 · 27 阅读 · 0 评论 -
dfs-PERKET
当我们添加配料时,总的酸度为每一种配料的酸度总乘积;总的苦度为每一种配料的苦度的总和。对于 100% 的数据,有 1≤n≤10,且将所有可用食材全部使用产生的总酸度和总苦度小于 1 *10^9,酸度和苦度不同时为 1 和 0。接下来 n 行,每行 2 个整数 si 和 bi,表示第 i 种食材的酸度和苦度。众所周知,美食应该做到口感适中,所以我们希望选取配料,以使得酸度和苦度的绝对差最小。另外,我们必须添加至少一种配料,因为没有任何食物以水为配料的。一行一个整数,表示可能的总酸度和总苦度的最小绝对差。原创 2023-04-03 22:47:19 · 35 阅读 · 0 评论