【题解】牛客练习赛66

牛客练习赛 66 题解

前几天在考试,稍微发晚了点,请见谅。

A

我们可以求出最大的整数 满足 ,然后分别判断 即可。

只有一次询问,且数据范围只有 ,暴力枚举或二分皆可。

时间复杂度

代码链接

B

考虑从 开始 BFS,则第一层扩展到的点 一定满足 ;第二层扩展到的点 一定满足 ,可以得到 ;第三层的点 一定满足 ,而这些点一定在第一层已经被扩展到,所以第三层不存在点。

综上,我们可以发现只有三种情况:

  1. ,最短路为
  2. 且存在 满足 ,则最短路为
  3. 其他情况一定不连通。

直接用桶记录所有出现过的权值即可判断第二种情况。

时间复杂度

代码链接

关于此题的 IO:被卡常确实是出题人想得不够周到,本意并不想卡常。不过有一说一牛客评测机波动确实大……

C

由于 有性质 ,所以我们可以将 数组进行差分得到数组 ,特别地,。那么有

数组整体加 会使得 而其他数不变。

,则我们要求最大的 以及在 最大时最小的

只要让 整除 即可。

时间复杂度 (对一个数组整体求 的)。

代码链接

D

转化后题目即为求使得所有 为质数幂次的最小的 。相当于每个数都只能有最多一个质因子的幂次大于 中对应质因子的幂次。

考虑依次加入每个质因子,用 表示只考虑已加入的质因子时, 集合中的数已经有一个质因子幂次大于 中对应质因子的幂次时最小的

转移考虑枚举当前质因子的次数进行转移,直接判断每个数是否会被覆盖即可。

时间复杂度 ,其中 表示不同质因子的次数之和, 表示高精度的复杂度。

代码链接

E

我们可以使用二分加 ST 表求出每个位置左边第一个比他大的和第二个比他大的,以及右边第一个比他小的和第二个比他小的,分别记为

考虑一个区间 是 Sao 的需要满足的条件有:

考虑将第一个条件差分,即满足 和条件 2 的方案数,减去满足 和条件 2 的方案数。

那么我们只要从前往后枚举 ,就可以去掉第一个条件,第二个条件只需要用树状数组进行区间加操作即可。

当然也有其他很多方法,这里介绍的只是其中一种。

时间复杂度 ,常数较大。

代码链接

F

建出序列的一棵笛卡尔树,对于相同的数我们强制标号小的更小。我们可以通过预处理卡特兰数来求出笛卡尔树上每个子树的答案。

现在我们只需要求出 到区间中最小值第一次出现的位置的方案数、区间中最小值最后一次出现的位置到 的方案数,以及中间部分的方案数、最小值出现的次数即可。

中间部分的方案数和最小值的出现次数可以通过树上差分很简单的求出,而区间中最小值最后一次出现的位置到 的方案数可以将序列翻转转化成 到区间中最小值第一次出现的位置的方案数。

现在只需要求出 到区间中最小值第一次出现的位置的方案数即可。

考虑一个暴力做法,我们将 的右子树加入答案,然后从 不断往上跳直到父亲为 的 LCA,若当前 是左子树,则将右子树加入答案。

这个跳的过程可以简单地使用倍增预处理。

时间复杂度 ,常数较大,细节其实不是很多。

代码链接

全部评论
这个D能给个转移方程吗,不是很懂
点赞 回复 分享
发布于 2020-07-05 17:55

相关推荐

昨天 11:46
Java
如图:也是让我遇到逆天公司了,实习生是按天给工资,不忙直接强制休假了
baskly:公司为北京超图软件股份有限公司武汉分公司,明年公司应该会招新实习生,刷到的小伙伴快跑
点赞 评论 收藏
分享
2025-12-08 16:04
门头沟学院 Java
本人本科末9,今年大三。大一大二一直玩,什么都没学到,在大学混日子混了两年,每天不是在打农就是在steam。大三开学时一个和自己玩的好的同学去实习了,才发现自己白白浪费了两年的时间,如果真不冲一下就真去京东,阿里,美团送外卖了今年9月份开始学Java,一开始一直跟着黑马视频看,后面发现看视频效率太低了,时间根本不够,就开始主要看文档和看书了。这几个月一直在学,真的尽力了,希望暑期前能找一份好点的实习。我简历上面的项目大多没有指标,但是实际上我是真没多少时间去做项目,我基本主要是动手只做了外卖和天机,黑马点评和12306我都是只是看了项目。主要是自己的时间真的不多,但是这样子自己的代码能力确实比较差。而且自己也没有做过实际的工程,我顶多用jmeter测试一下接口tps啥的,比如使用Redis管道提升了一点性能,减少Redis交互,这种值得写上去吗?需不需要具体到某些数字求求各位佬给一些建议,看看简历怎么优化?项目介绍是不是不够详细?没有具体到业务方面。项目会不会提到大致实现原理导致面试官一看简历就知道怎么实现就没有问的欲望?专业技能一些字段是不是要加粗,是不是写太啰嗦了?有没有必要压缩内容变成一页?两页的话是不是都要把两页填地满满的。
给秋招一个交代:一页简历最好,网上做的项目放面试官眼里都是玩具,简历上不需要强调有什么难点,记住就行防止真的问。然后背八股,多投多面试就行
点赞 评论 收藏
分享
评论
9
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务