AtCoder Regular Contest 108 (A-F) 题解

89 篇文章 1 订阅

AtCoder Regular Contest 108 (A-F) 题解

A

枚举P的因子,时间复杂度 O ( p ) O(\sqrt p) O(p )

B

从前往后扫,维护一个栈,遇到一个完整的fox,就弹出。时间复杂度 O ( N ) O(N) O(N)

C

搞一个生成树,根据父亲的颜色决定当前点的颜色。

D

分类讨论好题,👍

讨论每一种情况,看看字符串有多少形态?

时间复杂度: O ( n ) O(n) O(n)

E

我们可以发现若l和r选择的话,则l,r内部的期望点数实际上与区间[l,r]外是无关的。

所以用dp[l] [r]表示 l,r选择 内部的期望点数。

最终大概长成这样:
d p l , r = ∑ a r > a i > a l ( d p l , i + d p i , r ) ∗ K dp_{l,r}=\sum_{a_r>a_i>a_l}(dp_{l,i}+dp_{i,r})*K dpl,r=ar>ai>al(dpl,i+dpi,r)K
咋优化这个呢?

实际上由于 a l < a r a_l<a_r al<ar,所以对于 f l , i f_{l,i} fl,i我们实际上只需要满足限制: a i < a r a_i<a_r ai<ar,同理 f i , r f_{i,r} fi,r只需要满足限制 a l < a i a_l<a_i al<ai

所以我们只需要对于每一个 d p l , ∗ dp_{l,*} dpl, d p ∗ , r dp_{*,r} dp,r记录一个BIT就可以了。

F

一端在树的直径上,剩下的数学乱搞就可以了。时间复杂度 O ( N ) O(N) O(N)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值