Codeforces Gym 100015 简要题解

本文已被迁移至新博客,您可点此查看


提交链接(Codeforces::Gym)
参考代码

A. Another Rock-Paper-Scissors Problem

归纳一下可以发现这就相当于求 N N N 在三进制下的表示。
时间复杂度: O ( log ⁡ N ) O(\log N) O(logN)

B. Ball Painting

f i , j f_{i, j} fi,j 表示有 j j j 个球被涂黑且这些球总共占用 i i i 行的方案,枚举最后一个球是否占用了一个新的列可得递推式

f i , j = f i , j − 1 × ( 2 i − j + 1 ) + f i − 1 , j − 1 × 4 f_{i, j} = f_{i, j - 1} \times (2i - j + 1) + f_{i - 1, j - 1} \times 4 fi,j=fi,j1×(2ij+1)+fi1,j1×4

预处理后直接输出即可。
时间复杂度: O ( N 2 ) O(N^2) O(N2)

C. City Driving

基环树上最短路。实现起来稍微有点麻烦的板子题。
时间复杂度: O ( N ) O(N) O(N)

D. Drunken Walk

f i , p i f_i, p_i fi,pi 分别表示在原图上从 i i i 点开始走的期望边数以及从 1 1 1 点开始走经过 i i i 点的概率。
对于一条边 e ( u , v ) e(u, v) e(u,v),无视掉它后从点 u u u 出发走过的期望距离从 f u f_u fu 变成
f u ′ = f u × w u − w e ( f v + 1 ) w u − w e f'_u = \frac{f_u \times w_u - w_e(f_v + 1)}{w_u - w_e} fu=wuwefu×wuwe(fv+1)
其中 w u w_u wu 表示 u u u 的所有出边的权值和, w e w_e we 表示边 e e e 的权值。
最后注意到 f u f_u fu 对答案贡献的权重为 p u p_u pu,因此无视掉边 e e e 后的期望距离为
f 1 + p u ( f u ′ − f u ) f_1 + p_u(f'_u - f_u) f1+pu(fufu)
枚举所有边然后取最大值即可。
时间复杂度: O ( M ) O(M) O(M)

E. Empty Triangles

暴力求出所有交点,暴力建边。
注意到抽象成图后每个点的度数恰好为 4 4 4,因此可以暴力求三元环的个数。
时间复杂度: O ( N 2 log ⁡ N ) O(N^2 \log N) O(N2logN)

F. Fighting for Triangles

f S f_S fS 表示当前已经有集合 S S S 中所有边的情况下先手与后手得分差的最大值。
状压 DP 预处理后直接查询即可。
时间复杂度: O ( N ⋅ 2 N ) O(N \cdot 2^N) O(N2N)

G. Guessing Game

注意到 a i + b j ≤ c ⇔ a i − ( − b j ) ≤ c a_i + b_j \leq c \Leftrightarrow a_i - (- b_j) \leq c ai+bjcai(bj)c 以及 a i + b j ≥ c ⇔ ( − b j ) − a i ≤ c a_i + b_j \geq c \Leftrightarrow (-b_j) - a_i \leq c ai+bjc(bj)aic,这是差分约束的形式。于是建图之后判断图中是否存在负环即可。
时间复杂度: O ( Q ( N + M ) ) O(Q(N+M)) O(Q(N+M))

H. Hidden Code

显然两个串做差之后的结果要么是密码串的一个前缀,要么是密码串后面加上加密结果的一个前缀。
枚举长度检查即可。
时间复杂度: O ( N l 2 ) O(Nl^2) O(Nl2)

I. Identity Checker

想不出来有什么正经做法。反正我是枚举若干个特值检查来的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值