ABC177参加記
AtCoder Beginner Contest 177 に参加して5完163位だった。爆速5完キメて最高に気持ちええ ありがとう 競プロ最高!一番好きなギャンブルです!ww
A. Don't be late
D,T,Sが与えられるD<=T*Sか
B. Substring
Tの始点を全部試して実際に何個一致しないか数える
Python :
https://atcoder.jp/contests/abc177/submissions/16397045
C. Sum of product od pairs
を求める問題。愚直に計算するとになってTLEしてしまうが、内側のに注目すると、の値は定数という事がわかるのでにしてよい。は累積和を使うとで求まるので、まで計算すればよい。オーバーフローしないようにMODをとる場所に注意する。
C++ :
https://atcoder.jp/contests/abc177/submissions/16393159
Python :
https://atcoder.jp/contests/abc177/submissions/16397137
D. Friends
見た瞬間にグラフの最大連結成分の大きさが答えということがわかるのでunion findを貼ってsizeのmaxを出力します。直感的にそうなので、論理的に説明するのは難しいです。ふつうにbfs/dfsをしてもいいと思います。
C++ :
https://atcoder.jp/contests/abc177/submissions/16393388
Python :
https://atcoder.jp/contests/abc177/submissions/16397426
E. Coprime
N要素の配列Aは対ごとに素ですか、互いに素ですか、どちらでもないですか?という問題。であることをaとbは互いに素であるといい、とか、数が2つ以上になってもそのすべてのが1であるなら互いに素と言います。「互いに素」というと2つの間の関係しか指さないような気がして直感的ではない気がしますね。
対ごとに素というのは問題文のという意味です。(ところでこの書き方は正しいですか?わかりません 誰か教えてください)
全てのを素因数分解したときに、ある素数が2つ以上の数に含まれていたらは対ごとに素ではありません。全てのを愚直に素因数分解して確かめるとで解くことが出来ますが、この問題はなのでとなり、TLEしてしまう可能性が高いです。(僕は競プロ初心者なので時間計算量解析をしずにコンテスト中にこれを書いて1916msで通ってしまいました。ごめん....)
普通に素因数分解をするとかかってしまいますがAtCoderの解説に書いてあるエラトステネスの篩でごちゃごちゃすると、前計算で素因数分解をでできるようになり、AC!
C++ :
https://atcoder.jp/contests/abc177/submissions/16396763
Python :
https://atcoder.jp/contests/abc177/submissions/16394973
F. I hate shortest path problem
解けません おわり
最初一番左上からスタートと誤読していて(実際は一番上の任意の場所からスタートできる)めちゃくちゃ適当な解を投げてしまっていた。
区間加算、区間最小取得ができる遅延セグ木を貼ってガチャガチャしていたが解けなかった