ABC357 (2024/06/08)
https://atcoder.jp/contests/abc357/tasks
新ルールについて(詳しくはat coderの該当記事参照)
『明らかにルール違反をするユーザが多く検出された場合、特定のコンテストに対してその集団からのアクセスを禁止したり、法的措置を含む厳格な対応を考えています。』とのことなので良心を持ってください
〇A問題
まーす.icon茶色に降格.......for文で愚直に
CarpDay.icon もう結果出てるの??
まーす.iconヒント:順位......
CarpDay.icon 意外に落ちるのはそんなに下がらないこともあるよ.
まーす.icon以前7000位をとったことがあり,レートが50くらい下がったので......
CarpDay.icon((((;゚Д゚))))ガクガクブルブル
まーす.iconセーフ...…
TTT.icon Hを順に足していき,Mを超えたらそのひとつ前のインデックスを出力しました.
CarpDay.icon 本日は不思議なコンテストでした..A問題は素直に解く
tako.iconぐちょく
kakip.iconコーナーケースでつまずく
yuichang.icon慎重にやる
Kaplam.iconるーぷ
〇B問題
まーす.iconABC = string.uppercaseとabc = string.lowercaseを作って,Sのi番目の文字がABCに属するか否かで判断.
TTT.icon ord関数を使って条件分岐し,大文字の個数を数えました.
CarpDay.icon islower()を使って小文字判定.大文字小文字の個数数えて,lower()かupper()で少ない方を変換
tako.icon CarpDay.iconさんと一緒
kakip.icon大体copilotにやってもらった
yuichang.iconめっちゃ書く
Kaplam.iconislowerとかググりながら
〇C問題
TTT.icon C,D問題をいったりきたりしていましたが,Cの方針はたたずじまいでした.
まーす.iconむずい.この問題でやる気無くした...…
CarpDay.icon 典型的な再帰関数の問題...のはずなのに,recursionlimit設定忘れてRE.PyPyで提出してTLE.ここまではいいけど,そこからなぞのRE地獄.ifのTrueとFalse部分入れ替えただけでREになる不思議?多分,しょうもないミスをしているのだと思うけど,自戒のためにここに現時点の気持ちを記しておく.
Kaplam.icon私もRE出しました...制約をよく読んでみてください...
CarpDay.iconあ!!!tako.iconさんのコード見て,まさか!と確認しました.うーーーん...助言ありがとう.大反省 orz
CarpDay.icon 参考まで.上のミス取ったら,PyPyでも余裕(55ms)でACでした..再帰で-1して呼び出すけど,上のミスのせいで,どれだけ-1しても終点の1にならないためにTLEになっていました.
tako.icon 気合で再帰。白の個数や場所などがこんがらがる
kakip.icon同じく再帰。Listの深さをそろえるのがむずい
yuichang.icon 再帰を頑張る
Kaplam.icon3で割ってmodとって真ん中空けてって感じ、手作業で作ったやつ出力してもACとれそう、REはこれ...いる...? 追記:手作業で作って貼り付けるとギリギリ提出ファイルサイズを超えるらしい(evimaさん曰く)
〇D問題
まーす.iconC飛ばしてこれを先に考えていたが,バグだらけ.Eへ...…
TTT.icon V_nを10^8ループで作ってしまいTLE,V_nを60ループほどで作るもintのメモリオーバーで詰まる.modだけ更新して,V_n自体は作らなくていいんだろうなぁとは思いつつもmodを利用した良い実装法を思いつかず終了.
tako.icon MODの逆元って期待値の時だけじゃないの?そもそも逆元の使い方がこれであってるのか謎だけど通ったからあってるのだろう
CarpDay.icon 基本は Nの余りの等比級数.計算合っているはずなのに,N=10000000000のときが合わない.計算時間オーバーを恐れてこまめにMOD入れすぎたのか,少しずつMOD減らしたらやっと合った.割り算以外はいつMOD取っても同じになると思うんだけどなぁ...不思議2.
CarpDay.icon 解決.kakip.iconさんに作ってもらった初期設定内にMOD=2147483647があって,MOD=998244353を実行する前に,N % MODを実行してしまっていました.Nの余りの等比級数を求めるつもりが, Nの等比級数を求めてACになっていました.
kakip.iconわからなかった
yuichang.icon 等比数列の和の公式をぐぐる。逆元は面倒くさいのでatcoder::modintを使うと/使うだけで良い感じの割り算してくれる
CarpDay.iconそれってC++専用?
yuichang.icon pythonにもAtCoderLibraryがあってmodintあるのでいけそうです。https://github.com/not522/ac-library-python/tree/master/atcoder
CarpDay.icon情報ありがとう.チェックしてみます.
CarpDay.icon調べました.MODの設定はModContext使う,逆数は inv()使う,値表示は.val()使うなどC++に比べたらちょっと面倒.これまで通り,逆元使う方がPythonでは楽かも.
Kaplam.icon色々考えて等比数列の和だと上手くmodとれないし他の方法だと桁数多すぎるし2^n毎にとっていくのは350点にしては実装難しすぎない? と色々悩んだ末に2^n毎にとってずらしてを繰り返す感じで
〇E問題
まーす.iconなんとなく出来そう.CとD飛ばしてE見てたらよかった.(D粘る必要なかった)もうちょっと考えてみようかな
まーす.iconできたと思ったら,入力例3でWA.頭痛いのでやめ.
tako.icon functionalグラフとかいうやつ。知らん
CarpDay.icon D問題も諦めて覗きに来る.Kaplam.iconさんが早くに通っているので,考え方が重要と推測.でもその考えが浮かばず断念.
CarpDay.iconFunctional graphについての性質しっているか?ゲーム.Web検索したら,ABC252Eの解説ヒットして,重要な性質書いてある.あとは実装するだけ.(ABC256(約2年前)参加していました...)
kakip.icon解法は分かるけどグラフの実装嫌い。最近AIを頼りすぎて実装力落ちてるかも
yuichang.icon 類題やった事あったが解けなくて泣き
Kaplam.iconどこかの点から始めて何点通ったか覚えてループに入ったら引き算してって感じ
〇F問題
tako.icon 遅延セグ。解かなければならなかったが解けなかった。悔しい
tako.icon コンテスト後AC。データの桁が大きいとbit演算でデータを一次元にするやり方では逆に遅くなる(今回は998244353で余りをとるので一つのデータに30桁必要、それでデータが4つ必要なのでそれは無理)。実行時間が5secあるので素直にタプルにしましょう(またはC++にしましょう。)
CarpDay.icon 遅延セグだったのかぁ.見ることもできず.
〇G問題
#AtCoder #ABC