ABC298 (2023/04/15)
https://atcoder.jp/contests/abc298/tasks
〇A問題
Yuto.icon "o" in S and "x" not in S
TTT.icon ('o' in S) and not('x' in S): ならYesとしました。
sakana.iconif文で問題文そのまま分岐させた
CarpDay.icon inさまさま.ありがとうPython.
おたふく.icon not in の存在を忘れていたので、少しだけ冗長な条件分岐をした。
TK.icon最初にfor文のelseを使って、oがない場合もYesを出してしまい、作り直して時間がかかった。文が短いから初めからinでやっておけば良かった
tako.iconinを使いました
〇B問題
Yuto.icon np.rot90(A).最初,A==Bかどうか判定するのだと勘違いしていて時間を浪費してしまった.サンプル合わねーーって思って問題文読み直したらAが1の部分のみ考えれば良いって書いてることに気付く.ばか
TTT.icon ちょっと焦ってて問題文理解できなかったのでCへ。そのままCで時間を溶かしました。自力で解けるかまた確認してみます。
sakana.iconnp.rot90()を調べて実装したけど2つだけWAで原因が分からずCにいった。
Yuto.icon sakanaへ.check()呼び出す回数少なくない?四角形回転させて判定するのに3回しかcheckしてないよ
CarpDay.icon問題文通り,i → N+1-j,j→iをの処理をコピペ4回行って作成.0-indexのまま行ったので,i → N-1-j,j→iに変形.Aが1の部分のみ見るので,AではなくBを回転させました.ユーザ解説の方法,すごい!
おたふく.icon 行列を90°回転してくれる何かがあることをYuto.iconが言っていた気がしたので調べた結果np.rot90()の存在を知ったがなぜかimport numpyでエラーを吐くのでテンパり1、A[i][j] = A[j][N-i-1]として回転をすると90°回転してしまう? よく分からないが上手くいかないので添え字が間違っているのかと考えるが原因が分からずテンパり2。焦りに焦って飛ばす。D問題を解いてから返ってくると原因判明。コピーを用意して対処。
TK.iconインデックスの調整に苦戦。一度Cを通してから帰ってくるも、そもそもやっていることが全く違うことが判明。作り直したらすぐに通った。
tako.icon問題文通りに回転させました。回転しないままのものの判定を入れ忘れたので一回WAになりました
〇C問題
TTT.icon B問題よりはC問題の方が理解しやすかったので先にCへ。TLEを改善できないまま終了してしまいました...
Yuto.icon box to cardとcard to boxを管理する.出力する個数の総数が10^5くらいなので,毎回sortしても大丈夫.追加するだけで消すことも無いので,データ構造は適当で良さそう.
sakana.icon出力の際に毎回sortedしていたためTLEに。sortしてから出力したらACでした…時間内に気付かなかった
CarpDay.icon出力個数が少ないので,素直にリストで実装.箱は重複せずに出力なのに,読み落として1WA.集合に変更してAC
おたふく.icon Yuto.iconと同じでcard_in_boxとbox_in_cardを用意して、箱iに入っている数字と数字iが入っている箱を両方管理。重複を持たないように数字iが入っている箱のデータはsetで保持。
TK.icon箱はリストを値に持つ辞書に、カードが入っている箱の番号を集合を値に持つ辞書で管理。
tako.iconYuto.iconさんとたぶん同じ感じだと思います
〇D問題
Yuto.icon まず,愚直にやるのは無理.sが最大で10^5桁くらいになり,TLEする.途中で良い感じにMODを取って,桁が大きくなりすぎないようにすればいけるんじゃね?とおもったけど,12121212121212みたいなやつをMOD取ってから操作2やる(先頭消す)のと,操作2やってからMOD取ると答え変わるやん..どうすればいいのか考えていたらコンテスト終わった.
Yuto.icon コンテスト後,解説AC.敗因は,sとansを1つの変数でやろうとしてたことっぽい.あと,pow(10, でっかい数)をやっていてTLEが消えなかった.pow(base, ext, MOD)の存在を完全に失念してた.
CarpDay.icon文字列で管理したら桁数大きすぎるなぁ...MOD...クエリ3で,変数をそのまま出力できることを目指して実装.何とか解けました.
おたふく.icon CarpDay.iconと同様、文字列やリストで持ってから10進数に直すのなら最初から10進数で扱う。WAを大量に出しながら辛くもAC。
TK.icon残りの少しの時間で考えたが、WAとTLE。足し算と引き算で考えられるならMODをとって計算すればいいと思いやってみるも、TLE。WAがなくなったため引き算の箇所を修正すれば行けそうと思ってる。ー>AC出るも、PyPyとPythonの処理時間の特徴に苦戦しました。提出結果を下から見ていくと、試行錯誤の跡が見えると思います
〇E問題
Yuto.icon Dで詰まったので見に来た.見るからに期待値DPだったので少し考えてみたが,Dの方が見込みがあるかな?と思いDに戻る.
CarpDay.icon高橋と青木がそれぞれ何回でゴールできる確率を求め,高橋が勝つ確率を計算.実装大変でしたが,時間内に間に合いました.解説見たら,素直なDPでも実装できるようですね.
TK.iconこれ以降見ていない
〇F問題
Yuto.icon 軽く目を通したけど無理そうだったのでDに戻る.
CarpDay.icon安直に実装したけど,(10^5)^2になるから無理だよね...解説見たら,結構惜しかった!F問題だから難しいだろう,と諦めずに考えるべきでした.残念.久しぶりに5問正解でランクアップか!?と思ったら,DDOS攻撃のせいでコンテスト自体がUnratedに...(泣)
〇G問題
CarpDay.icon終了後に覗く.美味しそうな問題.解説見たら,綺麗なDP(というか,メモ化全列挙か?)を見つけて感動.コメントつけて投稿したら,After ContestのみWA.綺麗なDPは疑似ACコードであることが判明...
#ABC #DDoS #MOD #DP #座標圧縮