牛客IOI周赛19-普及组题解

Sol:

A:小y的考试

我们按照字符串的长度排序然后分类讨论判断长度的关系,按照题目的要求输出就可以了。
注意字符串的读入方式。

B:小y的序列

题目要求的本质上是a[i]与i的关系,因此我们发现如果两个数i,j,a[i+1]-sum(1,i)和a[j+1]-sum(1,j)的定值如果相同,这两个彼此的关系就不需要修改,所以我们直接开一个map统计一下哪个值出现的次数最大。

对于n<=1000这个出现次数最大我们可以把它存下来求一个暴力n方求出和这个数相同的数个个数。

C:小y的旅行

对于40%的数据我们朴素维护连通性dfs就可以。

对于100%的数据我们考虑如果一条边的两个端点都大于k那么我们记录为A类边

如果有一个端点小于等于k,那么我们就把这些边存起来设为B类边

对于A类边我们显然不会删,后面会简单证明,但是我们用并查集维护一下它们的连通性。

对于B类边我们如果连接以后没有产生环我们就连接反之这条边得删掉,我们在这里记录一下ans就可以。

我们考虑建出来的总是生成树,而对于生成树我们没有连成环,始终是一棵树的情况,我们对于那些点只要不构成环的保留哪条边都是可以的因此是等价的。

D:小y的游戏

对于4%的数据直接输出样例。

对于28%的数据这部分可以让优秀复杂度的搜索剪枝通过

对于44%的数据我们有一个四维dp,分别记录dp到第i位,每种操作都用了几次,然后我们可以对于这个可行性进行dp,我们二分答案即可

(这里的每种操作对应这个三连冲击波的三种操作,对应着-9 -3 -1的情况)

对于100%的数据我们发现这个四维dp的最后一位可以用技巧优化掉,我们把dp数组换成int类型的,然后我们记录一下前两个操作的使用次数的情况所需要导致到当前第三种操作也就是这个-1的最少需要用几次。

然后我们同样采用二分来变成一个判定性的条件就可以了。这题状态数不多,二分可以通过!

upd:理论上不带二分的代码过不了,但是考虑到题目难度有点大,修改了时限,让一位写了这样做法的选手过了此题!

代码


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 12:10
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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