牛客题解官
牛客题解官
全部文章
分类
题解(475)
归档
标签
去牛客网
登录
/
注册
牛客题解官的博客
TA的专栏
74篇文章
0人订阅
牛客代码笔记-牛栋
74篇文章
224人学习
全部文章
(共762篇)
k倍多重正整数集合
题解:题目难度:三星 考察点: 哈希,思维 易错点: 很多同学在枚举倍数的时候会漏掉当的值为的情况,事实上,这种情况需要单独讨论,的值为1时,集合最大可容纳的元素个数就是集合中元素的种数,也就是让集合中不同的元素只能出现1次。 题解: 这题的数据范围为,因此如果对于每个位置暴力去探寻它的倍是否存在与...
2020-06-05
0
1036
交换查询
题解: 题目难度:三星 考察点: 哈希表 易错点: 因为和的范围都有,所以不能直接开成的数组,因为这样内存会爆掉,考虑到这是最大也只有,说明这是一个比较稀疏的矩阵,因此可以用来进行存储。 解法: 定义map<pair<int,int>,int>这样一个数据结构来存储方格中的数...
2020-06-05
0
728
两两配对差值最小
题解: 题目难度:二星 考察点: 贪心,排序,哈希 解法一:贪心+排序 将一个数列中的所有数两两配对并求和,在这些和中选出最大和最小值,使得二者差距最小。很显然就是要让所有的配对的和的大小尽量相等,试想一下,如果让大的和大的配对,小的和小的配对,那么最大值和最小值的差距将会进一步拉大,因此一种可行的...
2020-06-05
0
1552
回合制游戏
题解: 题目难度:二星 考察点: 思维,数学 易错点: C++中的除法是向下去整,也就是说当和均为整数时,只取整数部分,因此当全由构成时,其结果应该为,否则不能整除时就会少计算一个 解法:数学 当使用时,需要一个回合来蓄力,一个回合来攻击,需要两个回合。因此,当倍的都无法超过时,才使用,否则使用一定...
2020-06-05
0
697
代价
题解: 题目难度:一星 考察点: 枚举,暴力 解法: 因为只有3个任务,可以放心大胆的进行枚举,每次固定其中一个任务,并求出它和另外两个任务的差的绝对值的和,将3个任务依次固定,选出其中最小值 #include "bits/stdc++.h" using name...
2020-06-05
0
754
访友
题解: 题目难度:一星 考察点: 数论,贪心 易错点: 很多同学拿到这个题都有一种比较直观的想法,希望使用,维护两个值,一个是当前值,一个是当前步数,然后通过队列去维护所有的情况,当第一次值为时,所对应的值即为最小步数。但是这个题的空间是承受不下所有状态的,所以这种方法并不可取。 解法:贪心+数论 ...
2020-06-05
0
742
种树
题解: 题目难度:三星 考察点: 深度优先搜索,回溯,剪枝 易错点: 这个题目对于同学们来说做法非常直接,就是递归+回溯,也很容易想。但是因为物品的数量达到了,如果用简单的不进行剪枝的话,是无法跑过所有数据的,因此需要做一些剪枝。 题解:深度优先搜索+剪枝 这个题目的做法很显然,就是使用递归+回溯,...
2020-06-05
0
831
翻转翻转
题解: 题目难度:二星 考察点: 数形结合,找规律 易错点: 很多同学看到这个题目首先想到可以暴力,但是由于这个题的和都太大了,如果暴力的话,无论是时间还是空间上都无法承受,所以这是一种不可取的做法。 解法:数形结合+找规律 首先有一条非常重要的性质:对于一个位置,如果被翻偶数次,它一定维持原来的状...
2020-06-05
2
767
买房
题解: 难度:二星 考察点: 思维,数形结合 题解:数形结合 显然如果把个连续排在一起,则一个满足条件的都不存在,很显然最小值为,接下来难点变成了求最大值。最大值的排列情况如下图所示: 红色表示住户,黄色表示空地。显然上图所示这种情况能够组成最大值,假设有个住户,则会占据个方格,所以当时,满足条...
2020-06-05
0
720
香槟塔
题解: 难度:三星 考察点: 模拟,线段树,二分 解法一:模拟 这个题的测试数据可能比较水,没想到暴力也能卡过去。设置一个数组来记录每一层的香槟体积,对于每一次查询操作,直接输出即可;对于每一次修改操作,如果,则香槟会继续流入下一层,直到不能流为止,否则香槟在当前层终止,并修改当前层的体积。 #in...
2020-06-05
1
861
首页
上一页
37
38
39
40
41
42
43
44
45
46
下一页
末页