牛客313925129号
牛客313925129号
全部文章
分类
题解(51)
归档
标签
去牛客网
登录
/
注册
牛客313925129号的博客
全部文章
(共51篇)
题解 | #字符串最后一个单词的长度#
题意理解 输入一串字符串,每个单词由空格分开,输出最后一个单词的长度。 方法一 使用cin直接读入字符串会在遇到第一个空格时就停止,导致读入出错。使用getline()方法读入整行内容。再从后往前遍历,遇到第一个空格就停止,此时遍历了最后一个单词,输出对应的遍历的次数即可。 具体代码如下: #inc...
C++
2021-10-20
38
1605
题解 | #牛牛的冰激凌#
题意理解 m个冰淇淋同时开始制作,每个都有各自的制作所需时间,只有在制作完成后才可以将其运走,并且汽车要返回。每次可以运不超过n个冰淇淋。要求总的运输时间最少,且运输次数也最少。注意,最后一次运输不计算回程的时间。 方法一 贪心 由于必须要等待冰淇淋制作完成才可以运输,所以先对制作时间进行排序,先制...
C++
2021-10-14
0
356
题解 | #牛牛摆放花#
题意理解 一组数,找出一个合适的排序,是相邻两个数之间差的最大值要最小。注意首位两个数也是相邻的。 方法一 暴力求解。找出所有可能的排序,计算对应差值的最大值,在所有的最大值中输出最小的。 具体代码如下: class Solution { public: /** * 代码中的类名、...
C++
2021-10-12
0
359
题解 | #病毒扩散#
题意理解 当第i个字母小于第i+k个字母时,可以交换两个字母顺序,记作一次交换。我们要求给定的字符串中,最多可以进行几次交换,直到不存在符合交换条件的两个对应字母。 方法一 可以看到,第i、i+k、i+2k、i+3k等等这些字母之间进行交换,和其它字母无关,所以可以把这样的字母序列提取出来,依次计算...
C++
2021-10-11
0
525
题解 | #病毒扩散#
题意理解 每个人的活动范围相当于一个闭区间,开始时有一个人被感染。由于闭区间之间可能存在交集,所以当一个闭区间被感染时,与它相交的闭区间也会被感染,这个过程是瞬间完成的。所以,假设被感染的闭区间集合为S,还未被感染的闭区间集合为E,找出E中与S相交的闭区间,它们被感染并加入到S,更新E;不断迭代该过...
C++
2021-09-30
0
435
题解 | #星球游戏#
题意理解 n个星球可以看作n个结点,之间有零到多条无向边,牛牛和牛妹占领的星球可以看作两个点集。题目要求,从点集A中的某点到点集B中某点的所需要的最短距离。 方法一 最短路径算法有多种。本题中没有给定起点和终点,而是一个起点的集合A和终点的集合B,所以使用Floryd算法,求得所有结点之间的最短路径...
2021-09-24
0
485
题解 | #牛牛摇骰子#
题意理解 对于一维数轴上的一个数,下一步可以加3、7、11,也可以减3、7、11,经过一系列的加减操作后得到目标数值arr[i],我们要使做的加减操作的次数尽可能少。 方法一 用time[i]记录得到i需要最少的加减操作的次数。我们要得到数值i,可以先得到数值j,再加上i-j就可以了。此时,得到i的...
2021-09-13
0
495
题解 | #排列询问#
题目理解: 从两个下标区间中各自读取一个数,判断这个两个数的最大公因数是否为其中较小的数,最后输出满足条件的数对的个数。 方法一 暴力搜索第一重循环:遍历q个询问。第二重循环:遍历询问i中,l1到r1之前的数字。第三重循环:遍历询问i中,第二重循环里的每一个p[j]都与l2到r2之间的所有数字p[h...
2021-08-17
0
450
题解 | #通讯网络#
题目理解 n个城市对应n个结点,城市之间的路径对应结点之间的边。我们删除某一条边。假设有m条两点之间的路径经过该边,该边的权值为w[i],输出为m*w[i]的最大值。 方法一 对于题意的理解,我们删除一条边,其权重为w[i];如果在原来的图中,有m条路径包含了该边,则最后输出代价为w[i]*m。那m...
2021-08-11
0
486
题解 | #最长路径#
题意理解 n个房子对应于n个结点,街道就对应于结点之间的边,构成一张连通图。找到这张图中哪两点之间边上的数值之和最大。 方法一 深度优先搜索使用二维数组path存储路径的信息,对于每一个点,要记录它和其它结点所有路径的长度。然后以每一个点分别作为起点,都进行一次深度优先搜索,每走一步都更新一次最长路...
2021-08-08
0
546
首页
上一页
1
2
3
4
5
6
下一页
末页