ABC276 (2022/11/05)
〇A問題
CarpDay.icon 文字列を後からスキャンする良い練習
Yuto.iconPythonならstr.rfind("a")すればok
TK.iconenumerateを使うともっとうまくかけた
sakana.iconCで解いた。普通に前から探した。
〇B問題
CarpDay.icon 2次元リスト,特にグラフデータの作成に良い練習
Yuto.icon隣接リストを作れますか?問題.競プロでGraphの問題解いたことあれば瞬殺できる.
TK.icon競プロ初心者無事撃沈しました。グラフ問題の良い経験になった
sakana.iconTLE
〇C問題
CarpDay.icon さっぱり分からず,入出力例から推測して作成したプログラムを祈るように提出してAC (^^;
Yuto.icon問題見た瞬間にC++のnext_permutationが使えそうと感じたのでググってみたらprevもあるやん!→ AC.いろんな言語を使えるとこういう時に有利ですね.
https://scrapbox.io/files/636b90ad8ad096001dd8c98e.png
〇D問題
CarpDay.icon 素因数分解したことあれば簡単.Cより簡単な気がする.
Yuto.icon a!=1のaに対して素因数分解して2,3以外の素数があればだめ,そうでなければ指数部を足すってのをPythonで書いたらTLEした.C++で書き直したら今度はWA.沼ってしまったので一旦素因数分解から離れて,aを2,3でそれぞれ割れるだけ割って1になるかで判定したけどこれもだめ...結局時間内にAC出来なかった....................くやしい( ˘ω˘ )
TK.icon数学脳の自分はBC問題よりもこっちのほうができた自信がある。最初に問題を一通り見ておくべきだった。
Yuto.icon解説みたけど(数弱すぎて)いまいち理解できないので,今週の勉強会でだれか教えてください..
〇E問題
CarpDay.icon DFSで挑戦.一辺$ 10^6なので,sys.setrecursionlimitで再帰の上限を$ 10^{12}まで上げて実行.最初は誤って,10**12を10*12と記してしまって RE.(随分時間がかかって)REの理由に気付いて,慌てて10**12に変更して投稿したら,全ケースでRE.(ローカルPCでもRE..)再帰の上限値としては大きすぎとのエラーなので,エラーが消える$ 10^9まで上限を落としたらAC.でも問題によっては,$ 10^9じゃ足りないよね.棚ぼたの5問正解でした.
→ Yuto.icon再帰上限について調べてみました.再帰の上限はシステム依存らしいですね
競プロなら大抵2sec制限があるので$ 10^9回も回せないからそれで問題無いですが,競プロじゃないプログラミングで60secかかってもいいから$ 10^{10}回処理をしたいんだという場合はどうするんでしょうか?
Yuto.icon PythonでDFSしたらTLEしたのでC++で書き直してAC.C++でも数百msecかかってたので,多分頭の悪いアルゴリズムだったんでしょうね.書き直すのに時間がかかりすぎて,時間内には通せなかったけど,解説見ずに自力ACできたので良しとしよう