gyouzasushi’s diary

競プロとか

今日の競プロ(2020/4/7)

AtCoder 3問

Codeforces 2問

Educational Codeforces Round 44 E - Pencils and Boxes

問題

解説AC。

  • dp[i]=i本目までの色鉛筆を正しく箱に入れられるか、のbool。
  • 遷移は、a_i - d \leq a_j かつ j \leq i-k+1 をみたすあるjdp[j]=1ならdp[i+1]=1j本目未満を正しく箱に入れられて、かつj本目からi本目までが一つの箱に入るなら、i本目までの色鉛筆全てが正しく箱に入る、みたいな。セグ木とかで高速にできる。

提出

Educational Codeforces Round 44 F - Isomorphic Strings

問題

文字列sに対して、文字列s_a

  • s[i]= 'a' のときs_a[i]= '1'
  • そうでないときs_a[i]= '0'

と定める。s_b, s_c, \ldots, s_zも同様。このとき、文字列sと文字列tIsomorphicであるとは、\{s_a, s_b, \ldots , s_z\}をソートしたものと\{t_a, t_b,\ldots , t_z\}をソートしたものが一致するということ。あとはRolling Hashでがんばる。

最初WAやったけど、Rolling Hashの基数を変えたら通った…。この辺よくわかってないのでまた勉強する。

提出

ARC051 A - 塗り絵

問題

バチャ。

提出

ARC051 B - 互除法

問題

提出

ARC051 C - 掛け算

問題

操作の回数Bがとても多いので、周期性をみつけたいなあ、と考える。

aがもしmin\{a_i\} \times A \geq max\{a_i\}という条件をみたすなら簡単で、N回の操作でそれぞれの要素が1回ずつA倍されるというわかりやすい周期をもつ(a=\{1,2,3\},A=10なら\{1,2,3\}\{10,2,3\}\{10,20,3\}\{10,20,30\}\{100,20,30\}→… みたいに)。

そして、上の条件を満たさないうちは数列の最大値が更新されないため、どのような数列aが与えられたとしても少ない操作(高々O(N \log max\{a_i\})回)で条件をみたす瞬間が訪れることがわかる。

よって、愚直にシミュレーションしたあと周期を利用して適当に掛け算すれば完成。

ギリギリ時間内に解けた…。

提出

コメント

Congratulations — you've qualified for Round 1 of Code Jam 2020!

Tシャツほしい〜〜〜がんばります