ABC281 (2022/12/10)
〇A問題
Yuto.icon range()をreverse()して出力
wataumi.icon反転するだけ。
sakana.icon減らしながら出力
TK.iconreverseも考えたが、なれないことより確実にループ回して減らしながら出力
CarpDay.icon 上2人と同じ
TTT.icon for文での書き方がすぐに思いつかなかったので、またwhile文で書いてしまいました。
〇B問題
Yuto.icon言われたことをやるだけなのに,カスみたいなWAを2回も出してしまった.
wataumi.icon一文字ずつ見る荒ワザで一発AC。
sakana.icon一つだけエラーが出てて、苦戦した。「A」みたいな一文字しかないパターン?を考えてなくて、条件追加したらAC
TK.icon真ん中の数字が厄介、一文字目判定、2から6文字目が数字ならintにキャストして文字にして長さが減っていないかを確認するやり方で、処理は冗長だが何とかAC
CarpDay.icon try 使って万全で提出したつもりが,1ケースWA!制約見て9・10文字の可能性があることを知って対処.
TTT.icon 問題文の飲み込みに時間がかかりそうだったのでCの後に解きました。前回知ったord関数を使って整数と大文字英字を判定しました。
〇C問題
Yuto.iconTをn周分減らしてから,前から見ていく
wataumi.icon初めはn周回してしまいTLE、sum(a) % t に気づいてAC。
sakana.icon計算量を減らすためにtを一周分だけの時間に減らせば良いことに気づかずTLE。完成したのに残り時間2秒で提出が間に合わなかった;;
TK.iconTが10の18乗であることを確認しておらず無事TLE そこを訂正して即AC
CarpDay.icon 1周する分は省いて,残りをチェック.累積和求めて2分探索?と思ったけど,N<=10^5だから前から順に確認(というか,累積和求める段階でO(N)必要だね..)
TTT.icon Bより先に解きました。sum(A)%Tにしてから、for文で調べていきました。
〇D問題
Yuto.icon暫くは貪欲で解けると思い込んで色々やっていたけど,反例に気付く.dpをやるかーとなって dp[i][j] := i番目まで考えた時,j個の総和%d==0になる時のmaxって感じのことをやろうとしたけど解けなかった.解説チラッと見たら,dpテーブルの定義が3次元だった.添え字に持たせる情報が足りていなかったらしい
wataumi.iconDPの発想に至ることもなく組み合わせ爆発TLE。DP勉強会してくれた先生には申し訳ないが、DPをあまり理解できていない( ̄▽ ̄;)
TK.icon問題を簡単化するために、求めたい倍数の余りで数列を分けて考えようとした。結局うまくいかないため探索していくものだと思い、多分dpだろうなと思いながら考えてみたが、実装経験がなくうまくできなかった。解説をチラ見してきたらdpだったので実装の練習にうまく活用します。
CarpDay.icon久しぶりにDP解けて満足.3次元?私は2次元で解きました.
Yuto.iconiを持たない場合は2次元でも出来そうです(dpの使いまわし的な).私はmodを持っていなかったので,ダメだったようです
TTT.icon 問題文を読んで、DPの勉強会で使った講義資料を引っ張り出してみました。しかしDPをコーディングできるほど理解していなかったのでE問題にいきました。
〇E問題
Yuto.icon 解説に書いてあること(差分使って上手いことやる)は考察出来ていたんだけど,要件を満たす良い感じのデータ構造が思いつかなかった.今考えてみると,C++のstd::set使えば良かったかな?
コンテスト後,std::multisetを使ってAC.使い慣れてなくて本質以外の部分で沼ったけど,綺麗に実装出来た.
CarpDay.icon各iに対してO(N)程度で処理をする必要がある.m個のうち,小さいk個とその他のm-k個について,要素の追加,要素の削除,最小値/最大値の抽出をO(N)で行うために,辞書とヒープを駆使してできないか考えたがギブアップ.解説見たら,方針は合っていた.「以上の操作は,順序集合を管理することのできるデータ構造を用いてO(logN)」とのこと.でもそのデータ構造が分からない...AC解答見てもよく分からず,Web検索でさまよっていたら「ヒープ+辞書」で実装できそうなことに気付く.何とか実装してAC.(2時間かかったので,本番で思いついても無理だった..実装力..)
TK.icon部分列をソートしないといけないことを見落としていたため、Dよりも可能性あるかと思い少し考えたが、それを見つけた瞬間にそんな簡単じゃないやんとなり、Dへ撤退。
TTT.icon 一見簡単そうにみえたので、コーディングするうちになぜE問題なのか分かるだろうと思いコーディングしていました。案の定TLEを回避する問題だと気づいたので、断念しました。
〇F問題
Yuto.iconこれ以降みてない
CarpDay.iconE問題思いつかずF問題見に来たけど,やり方思いつかずにEに戻る.後日解答見て納得.実装したらとてもシンプル.コンテスト中に解けるようになりたい.
TK.iconちゃんと見ていない。本番中少しのぞいてみたが、すぐにDへ。