TCO2017 Semifinal 部分题解

Semifinal 1

ReverseAndIncrease

只需要知道s能够到达的最小的数。

如果s不为形如99999的数,我们总能把他变为形如10002的数。 然后直接判断

Code

ColorfulEnclosure

我们固定左端点,然后右端点从右往左扫描。
如果我们对每个点维护一个 fi f i 表示当下边界为 i i 上边界至少要为fi的话,每次删除点相当于checkmax(可以画图理解一下)。

然后相当于用吉司机线段树维护 fi f i ,以及 fiai f i − a i 的最小值。 这个不是很好做,不过有一种乱搞做法就是判断当前区间是否全为1个数,是的话直接改,否则递归。实测速度接近 O(log2n) O ( log 2 ⁡ n ) ,随机数据比原版快,而且能做许多原版不能做的东西。

不过这道题我没有A,好像网上的程序都过不了,不知道是不是TC的问题。

Code

Semifinal 2

RatingProgressAward

好题。

相当于把原来的序列分为三个部分,段与段之间的元素满足原来的限制,然后使得第二段的和最大。

拆点最小割即可。

Code

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值