Codeforces Round #584 - Dasha Code Championship - Elimination Round

A
顺序遍历,贪心搜索。

B
模拟即可。

C
最开始想倒序贪心地搜索,但是跟顺序一样,无法确定起始元素在1和2的位置。
之后考虑分治的办法,搜索当前前缀中的最大值所在位置,如果该位置后面仍然有元素,那么这个最大值一定在2中,后面的元素一定要顺序的排在1中。但是并没有办法确定如果最大的位置在当前前缀的末端点处时,这个最大的位置应该放在0还是1。
最后枚举每一个数值大小key,将严格小于key与严格大于key的值分别放在1和2中,最后找那些与key相等的元素的位置,如果他们的位置要么在1的末尾要么在2的首部,那么就可以成功串起来。

D
贪心 & map太丑了… 而且也写不出来。

虽然晚上想到了建图,但是没有成功想出来。

Since every animal has exactly two favorite snacks, this hints that we should model the problem as a graph.

以后对于这种关系的构造要多往建图方面去考虑。

以snacks为结点,根据每头牛的喜好建图。
可以发现,对于一个n结点联通图,至多只能供给n - 1位guest。那么对于n个snacks,我们先找在连通图内的结点个数,用这个个数减去连通图的个数,就是这些snacks可以满足的guest的个数。最后再用k减去这个个数即可。

AC代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值