Codeforces Round #481 (Div. 3)

A. Remove Duplicates

题意:就是输出去重的序列,输出每个数最后一次出现的位置。

B. File Name

题意:给你个长度为n的串,如果连续x出现超过三个或三个以上,就需要删除只剩下2个,问你最小删除多少。

做法:找到每个连续的x出现的位置,然后判断往后有多少个x 如果sum>=3个就让ans+sum-2就行,更新下起点继续走。

C. Letter

题意:有n个楼,每个楼有ai个房子,问给你一个数字是在那个楼的几号房子。

做法:对于每个邮件二分房子和就行。(先把房子总数存一下,对于邮件二分就行了。)


D. Almost Arithmetic Progression

题意:给你N个数,然后问你是否有一个公差可以使这个序列满足,对于当前这N个数可以对于每个数+1 +0 -1 三种操作(+0不算),问你最少操作多少次数。

做法:我直接想的就是把前两个数的公差(9个)用bfs跑一下就行了,但是看到别人的代码都很短。n==1需要特判下。毕竟我是太弱了。

E. Bus Video System

题意:给你n个车站人数变化的情况(正数表示上人了,负数表示下人了),和车的最大容纳量,问你在起始站的人数有多少种可能。

做法:求个最大最小值。如果最大值大于车的容纳量或者最小值的绝对值大于车的容纳量违背常理输出0;不违背常理,假如max>=0的话,那么初始的地方最多能上w-Max个人否则能上w个人。如果Min>=0的话,那么说明都是正的,就等于Max,否则Min<0 表示初始最少为abs(Min)个人,如果abs(Min)>Max,也违背常理输出0,否则输出Max-abs(Min)+1。

F. Mentors

题意:给你n个人,每个人都有自己技能值ai,然后给你m个关系,表示这两个人关系不好,如果ai>aj && i跟j的关系好,那i是j的师父。问你每个人有多少徒弟。

做法:先将技能值排序,然后对于每个关系中的两个人,判断下谁大谁小,标记下数量。然后对于每个人二分判断下有多少比自己小的,用返回的个数,减去和自己关系不好的而且比自己小的人的个数就OK了。


G. Petya's Exams

    未补题。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值