ABC312 (2023/07/29)
〇A問題
Yuto.icon やるだけ.問題文の、を,に置換して,.split(",")すると楽
TK.icon確認したい文字を用意して、それになっているか確認
Kaplam.icon気合
tako.iconやるだけ
CarpDay.icon(きちんと書くと)'Yes'の文字列集合にして,Sが集合に入るか確認.Yuto.iconさんの置換方法,いいね!...と思ったら,解説の別解,更に上を行ってました!
おたふく.icon あらかじめ含まれていてほしい文字をsetとして用意しておいて、in で確認する。
yan.iconlistに与えられた文字を入れ、inで確認した
〇B問題
Yuto.icon たまにある実装が大変なタイプのB.バグらせたけど,一発AC
Yuto.icon evimaさんの解説にある,tak codeを埋め込むの賢いな...CarpDay.icon同感!
TK.iconあんまりきれいにかける自信がなかったから、泥臭く書いて提出。方針は全探索
Kaplam.iconそのまま書いたらバグったから頑張ってなおした
tako.icon普通にやって提出したらREしたので配列外参照かなと思って探してたらフラグを宣言する場所が良くなかっただけでした。無駄に時間をとられてしまった。
CarpDay.icon素直に全探索.9×9の範囲がはみ出す場合に手間取る.自分は0-indexでよく迷うので,最初から1-indexにした方が早いかも.
おたふく.icon 3*3 の領域の8方位が計14マスが白という条件を解釈し間違っており、sample1の(10, 2)が何故解に含まれるのかさっぱり分からずとても時間がかかる。とりあえず、出力例で説明されている範囲のみ.であれば解に含めるようにして出力するとACが通ってしまった。嘘解法な気がしてならない...。
CarpDay.iconsample1のマス(19,8)が#だから違うのでは?という意味ですか?TaK Codeの定義は9×9の領域内だけ条件を満たせばよいので,左上が(10, 2)の場合は(10, 2)と(18,10)を対角線とする9×9の領域が判定対象となり,マス(19,8)は判定とは無関係では?
おたふく.icon .も9×9の領域内に含まれている必要があるということだったんですか!! やっと制約条件の意味が分かりました!!
yan.icon4*4の二か所を先に初期化で作っておき、3重forで確認していった。S[i][j : j+4]という使い方を覚えた
〇C問題
Yuto.icon 問題文(単調性がある関数の境界を求める)が二分探索をして欲しそうだったので,にぶたんを3回した.めぐる式にぶたんのチェック関数でbisectを使う.最初の提出はめぐる式のokが小さすぎてWA.余裕を持ったokに変更すると無事にAC.
TK.iconA,Bをソートして、Aのインデックスを進めながら、Bを削っていく形で条件を満たす長さになるまで繰り返した。多分それだけだと一部ケースを通すことができない。
Kaplam.iconソートして売り手を小さい方から見て行って買い手の人数が売り手の人数を下回ったタイミングで出してWA、買い手由来の条件満たし(サンプル2個目みたいな)でバグがあるのはわかったけどいまいちうまくいかなかった
tako.icon二分探索をたくさんしました。
CarpDay.icon単純な$ O(N)で解ける方法を思いついた!と思ったのが敗因(解説別解と似た方法.でも間違っていた(xx)).AやBに同じ値が複数あるときに対する場合分けが不十分で,最後までWA取れず.コンテスト終了後にbisect使った方法で,すぐにAC(泣). 綺麗な解法でWA出て原因分からないなら,素直な解法で解く!(反省文)
おたふく.icon 最初、A[i]のみが解の可能性があると思い、シンプルにfor文で回しbisectで買い手が何人か計算してsample1が合っていたが、sample2で間違いに気づいたのでYuto.icon激推しのめぐる式にぶたんで書き直しAC。買い手と売り手でbisect.leftとbisect.rightをしっかりと使い分ける。
yan.icon時間ギリギリでbisectの存在を知ったが、間に合わなかった。waは純粋に条件式が足りていないと思う、もう少し考えてみる
〇D問題
Yuto.icon DはDPのD.第一印象dpっぽいなーと思ったので,dpテーブルの定義をdp[i][j] := S[:i]まで考えて,閉じてない'('がj個の時の括弧列の総数 % MODとして,とりあえず書いてみた.ローカルで実行してみるとサンプルが全て通ったので,半信半疑で提出したらAC.手を動かしてみるの大切ですね.久しぶりの学内一位うれしい.
CarpDay.iconC問題WA取れず,D問題に移る.DPと決め打ちして実装.投稿したら1WA出て焦る.残り7分.配列の大きさ管理の間違えを発見して修正してAC.残り4分.危うくB問題までになるところだった..
tako.iconコンテスト後に解けました。もっと時間があって早めにDPと気づけていればコンテスト中に解けた...かも?
おたふく.icon 同じくコンテスト後に解けました。dpには気付けていたが遷移のさせ方に少し苦戦。
〇E問題
Yuto.icon 空間図形は無理です...
CarpDay.iconコンテスト中は全く見ることができず.「次元を落とせ」の鉄則や2次元いもす法を駆使するが,長方形領域の共通部分をO(1)でカウントする方法が思いつかず,諦めて解説見る.なるほど..E問題だからそこまでコード複雑にならないよね.
おたふく.icon 愚直に実装するとTLE。
〇F問題
Yuto.icon 制約が小さかったらdp出来そう?
CarpDay.icon使用する缶切りの個数に関して三分探索したらAC.解説とは全く違うやり方でした.
〇G問題
CarpDay.icon自然に思いついた比較的単純な方法でAC.余事象を考えるところはユーザー解説後半の4つと同様だけど,解き方はもっと愚直.格好良く言えば木DPかな?点数550点なので,G問題にしては解きやすい.