牛客算法竞赛入门课第一节习题Part1(切长条~「土」巨石滚滚)

牛客算法竞赛入门课第一节习题Part1(切长条~「土」巨石滚滚)

切长条(贪心)

题意:

给若干条线段,可以在任意一行做一条竖线,问至少做几条竖线才能把每一条线段都切开。

思路:

显而易见的贪心思路。

按照关键字为每条线段的左端点进行从小到大的排序,对于一个新的线段,如果他的左端点的值大于等于在前几条线段的右端点的最小值,那么就不能跟前面的重合,需要多做一条竖线,否则就更新右端点的最小值。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43860866&returnHomeType=1&uid=115850812

「土」巨石滚滚

题意:

她使用这种魔法建造了一个大型的土球,并让其一路向下去冲撞障碍

土球有一个稳定性x,如果x < 0,它会立刻散架

每冲撞一个障碍,土球会丧失ai的稳定性,冲撞之后,又会从障碍身上回馈bi的稳定性

帕秋莉想知道,如果合理的安排障碍的顺序,在保证土球不散架的情况下,是否可以将障碍全部撞毁呢?

思路:

总思路就是贪心,排序之类的。

但是贪心的过程就显得很繁琐。

首先对于每个障碍有两个属性,一是使土球的稳定性造成a[i]的减少,二是使土球的稳定性造成b[i]的增加。

因为土球的稳定性小于0就会散架,所以我们肯定会优先考虑那些能够给土球增加稳定性的操作,即先按照稳定性的净增加量从大到小排序。

如果可以增加稳定性的话,就优先选择对稳定性的损耗最小的,即再按照稳定性的消耗量从小到大排序。

如果只能消耗稳定性的话,就优先选择增加稳定性多的,即按照增加量从大到小排序。

最后再遍历统计就好了,但是要注意的是,一旦稳定性<0,就会立刻散架~

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43860992&returnHomeType=1&uid=115850812

全部评论

相关推荐

点赞 评论 收藏
分享
吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
05-21 18:32
已编辑
湖南工学院 Java
这条干货多数是给i人朋友们分享的,知道你们开不了口,可以试试我说的这些方法1.调整心态:接受初期的尴尬刚开始进入一个新环境,双方都属于一个认识对方的过程,尴尬瞬间是难免存在的。首先,你要接受尴尬,允许自己犯错,实习期本身就是来学习的,同事也不会期待你完美无缺。另外,不要太以自我为中心,其实你的尴尬瞬间也许没有人在意,是因你的对自己的关注而放大了不安全感。2.准备一些防止尴尬的话题和工作相关的,可以以请教的方式开启。比如:xx,这个表格我没有看懂,可以给我讲一下吗非工作的话题,可以聊聊中午吃什么、当地的天气如何、通勤远不远之类的。比如:附近有什么好吃的外卖吗?我刚来还不太熟悉3.每日练习,逐渐打...
sweep^0416:内向人,遇到好的领导很重要,我之前一段实习组里全e人就我一个i 刚入职第一周还会带着我聊一下,后面越来越冷落我,实在受不了,每天去到就想亖,mentor还要pua说是我融入不了集体(我真的以为是我的问题)后面我离职了,去了现在这一家公司,我的领导也是e人,但是我融入的很好,组里的人全都很好很好,也不会出现小团体什么的,所以说内向不是不融入环境的根本,就是公司跟带教的问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务