mjtaiさんのUNICORNプログラミングコンテスト2026(AtCoder Beginner Contest 477)での成績:392位
パフォーマンス:1974相当
レーティング:1777→1798 (+21) :)
#AtCoder #ABC477
atcoder.jp/users/mjtai/...
mjtaiさんのUNICORNプログラミングコンテスト2026(AtCoder Beginner Contest 477)での成績:392位
パフォーマンス:1974相当
レーティング:1777→1798 (+21) :)
#AtCoder #ABC477
atcoder.jp/users/mjtai/...
C TがSより短いとは限らない(1敗)
D 逆から
E N+1からダイクストラ
F C=1が解ければいい
G ABC174Fを見に行ったが
C TがSより短いとは限らない(1敗)
D 逆から
E N+1からダイクストラ
F C=1が解ければいい
G ABC174Fを見に行ったが
パフォーマンス:640相当
レーティング:1088→1050 (-38) :(
#AtCoder #ABC477 atcoder.jp/users/Nissyl...
パフォーマンス:640相当
レーティング:1088→1050 (-38) :(
#AtCoder #ABC477 atcoder.jp/users/Nissyl...
パフォーマンス:1219相当
レーティング:1204→1206 (+2) :)
#AtCoder #ABC477 atcoder.jp/users/doDayl...
微増🙂
パフォーマンス:1219相当
レーティング:1204→1206 (+2) :)
#AtCoder #ABC477 atcoder.jp/users/doDayl...
微増🙂
B
二重ループで適当に
C
O(len(S)*len(T)) で、あらかじめ T が含まれる箇所の開始地点を列挙しておく。
各クエリに対し、クエリの終点を len(T)-1 分だけ減算した後、クエリの範囲内に列挙した開始地点が含まれているかどうかを判定する。
D
クエリを逆順に見ていって色を確定させていく。色が確定したマスはもう考慮する必要がなくなるので、その分計算量をおとせる。
B
二重ループで適当に
C
O(len(S)*len(T)) で、あらかじめ T が含まれる箇所の開始地点を列挙しておく。
各クエリに対し、クエリの終点を len(T)-1 分だけ減算した後、クエリの範囲内に列挙した開始地点が含まれているかどうかを判定する。
D
クエリを逆順に見ていって色を確定させていく。色が確定したマスはもう考慮する必要がなくなるので、その分計算量をおとせる。
C 前計算で、Sのあるindexからスタートして|T|文字がTと一致しているかを最初に出しておく。
Tの方がSより長いケースを見落としていた。
D クエリを後ろから見ると良い。ある瞬間に塗ることができる対象はsetで管理できる。クエリを逆から見ているので、一度塗ればもう上書きできない、と考えることができる。
E 基本累積和だけど超頂点N+1でショートカットできる感じ...?よくわからない。
F imos法みたいな感じで解くことを考えると、Q*4箇所の座標だけ見ればよく、そこに黒四角の数を集めておけば解けそう。
集めるコードをどうしたらいいかわからず。
C 前計算で、Sのあるindexからスタートして|T|文字がTと一致しているかを最初に出しておく。
Tの方がSより長いケースを見落としていた。
D クエリを後ろから見ると良い。ある瞬間に塗ることができる対象はsetで管理できる。クエリを逆から見ているので、一度塗ればもう上書きできない、と考えることができる。
E 基本累積和だけど超頂点N+1でショートカットできる感じ...?よくわからない。
F imos法みたいな感じで解くことを考えると、Q*4箇所の座標だけ見ればよく、そこに黒四角の数を集めておけば解けそう。
集めるコードをどうしたらいいかわからず。
C:|S|<|T| あるのか…
D:ひどい目にあった。全く原因不明のTLEをしていて、Setが怪しかったのでしかたなくIndexSetを即席で実装したらそれもバグってランダムテスト回すはめに
後で調べたらCrystalのSet(というかHash)が一度大きなバッファを取った後でclearするのが(一度clearしたあとのその後のclearも)とても遅いようだった。shrink-to-fitしたいけどそのAPIはないので新しく作り直すしかなさそう
この挙動は初めて出会ったなあ
F:x方向にイベントソート
C:|S|<|T| あるのか…
D:ひどい目にあった。全く原因不明のTLEをしていて、Setが怪しかったのでしかたなくIndexSetを即席で実装したらそれもバグってランダムテスト回すはめに
後で調べたらCrystalのSet(というかHash)が一度大きなバッファを取った後でclearするのが(一度clearしたあとのその後のclearも)とても遅いようだった。shrink-to-fitしたいけどそのAPIはないので新しく作り直すしかなさそう
この挙動は初めて出会ったなあ
F:x方向にイベントソート
A問題はmatch式でやるだけ
B問題は全部チェックしても普通に間に合う
C問題ちょっと難しい
前処理として、Sのi文字目から|T|文字がTに一致するかどうかの配列を作り、これの累積和を作る
クエリごとに累積和の差をとれば、特定の区間内での部分文字列のマッチ回数がわかるので、これが0じゃなければYes
D問題だいぶ難しい
愚直にやるとクエリ2の連打で死ぬ
クエリ1の処理を、次のクエリ2の直前まで遅延させて、色の反映を一気に行うことでTLEを回避
最初、単にタイルを置いた時点で色を塗っており、2ペナ
A問題はmatch式でやるだけ
B問題は全部チェックしても普通に間に合う
C問題ちょっと難しい
前処理として、Sのi文字目から|T|文字がTに一致するかどうかの配列を作り、これの累積和を作る
クエリごとに累積和の差をとれば、特定の区間内での部分文字列のマッチ回数がわかるので、これが0じゃなければYes
D問題だいぶ難しい
愚直にやるとクエリ2の連打で死ぬ
クエリ1の処理を、次のクエリ2の直前まで遅延させて、色の反映を一気に行うことでTLEを回避
最初、単にタイルを置いた時点で色を塗っており、2ペナ
ABCDEF 6完 81:19
解法がわかる≠実装ができる
A:丁寧にif文
B:二重ループで全ペア確認
C:部分列の開始地点をピックアップ、範囲内に開始地点があるかどうかを二分探査とかで
D:こういうのは逆からやるとよさそう。タイルがなくて色のないグループをsetとかで見つつ色を塗るときに一気に塗る。setはタイルが変化するときだけチェック
E:つまるところ(N+1)番目を活用するOR円周だけで行くの2パターン。
(N+1)番目への最短経路は円周を使うかもしれないのでここだけダイクストラで検索。円周は累積を二周で何とかなる
(続く)
ABCDEF 6完 81:19
解法がわかる≠実装ができる
A:丁寧にif文
B:二重ループで全ペア確認
C:部分列の開始地点をピックアップ、範囲内に開始地点があるかどうかを二分探査とかで
D:こういうのは逆からやるとよさそう。タイルがなくて色のないグループをsetとかで見つつ色を塗るときに一気に塗る。setはタイルが変化するときだけチェック
E:つまるところ(N+1)番目を活用するOR円周だけで行くの2パターン。
(N+1)番目への最短経路は円周を使うかもしれないのでここだけダイクストラで検索。円周は累積を二周で何とかなる
(続く)