ABC422 (2025/09/07)
https://atcoder.jp/contests/abc422/tasks
〇A問題
Kaplam.icon言語アプデ鯖情報でcodonが来るそうなのでスレッド建てました
CarpDay.iconありがとう!
CarpDay.iconスーパーマリオ思い出す.8-8の入力例がなくて安心.
N_N.icon $ (i - 1) * 8 + (j - 1) を計算して,8で割ったり,8で mod とったり.
〇B問題
Kaplam.icon4方見て数数える
CarpDay.iconB問題にしては実装面倒.白マスだったらスキップする処理,continueと書くところbreakと書いてしまってWA.もったいない.
N_N.icon 二重ループで4方向を調べる.
〇C問題
Kaplam.icon中々困った、式を書いて解けそうな気がしたけどまとまらなかったのでにぶたんした
CarpDay.icon単純にAとCの数の少ない方でいいんじゃね?と提出したらWA.AとC以外が少ないケースに気付いて,修正してAC.
N_N.icon 図を描いて式を考える. min(min(Na, Nc), Nb + max(Na, Nc) - min(Na, Nc))で解けると思ったけどWA.min(Na, Nc) > Nb + max(Na, Nc) - min(Na, Nc) のときは,余ったAとCを合わせたものを3分の2にして組を作る必要がある.
〇D問題
Kaplam.iconいい具合に偏らないように置いていく、想定通りに置けてなくて2回WA出した_(:3」∠)_
CarpDay.icon入力例1を見て,N=1の場合は単純に半分ずつがベストなので,N>2の場合も同様に半分ずつ分け続ける.
N_N.icon 数列を K / 2^N もしくは,K/ 2^N + 1 で埋めればよい.後は,K/ 2^N + 1 で埋める場所を数列上でできるだけバラけるようにする.バラけさせるために再帰呼び出しで bit 全探索のような探索を行った.
〇E問題
Kaplam.icon終了直前に乱択に気付いて急いで書いたけど終了直前はjudge重すぎて1300msぐらいしか回せずWAが4個出た,終了後に再提出したら実行時間短くなった上にWAの場所が違ったのでやっぱり乱択失敗らしくて悲しい_(:3」∠)_
Kaplam.iconと思ったけど03_corner_2_00-03.txtの4つで落ちてるからどこかミスってるっぽい
Kaplam.icon通った、数字が1か所逆だった
CarpDay.iconおお!すごい!その方法でできるんだ!勉強します.
CarpDay.icon解けました.楽しかった.またこの手の問題出てほしいなぁ.
CarpDay.icon乱択アルゴリズムも最後少し考えたけど,例えばN=101で,51個が同一直線上,別の50個が別の同一直線上のときに,正しく51個の方を判定できる方法が思いつかず諦めました(それ以前に時間がなかったけど).
CarpDay.icon少し考えたけどO(N^2)になるのでスキップ.図形得意なあの人いたら,解けていたかな?
N_N.icon 最小二乗法を使えば解ける?解けない?
CarpDay.icon全点に対して最小二乗法使って近似直線求めて,その直線と各点との距離を求めて,近いものから同一直線上の候補となるかチェックしていく,という感じですかね?解けるかもしれませんが,その方法で解ける確信がもてないですね..
〇F問題
Kaplam.iconわかんない! 一応DFS書いて出したけどそりゃだめ
CarpDay.icon最短経路問題に似ている.ダイクストラの場合は各地点とその地点までの最短距離をキュー入れて,最短距離の点を確定できるけど,この問題の場合は重さと消費燃料の2つがあるから厄介.重さと消費燃料の和が次の点の消費燃料になるので,最小の和となる点から確定していく方法にしたけどWA.いろいろ変更するもWA.意外に時間がかからないので,結局はDFSのような形にしてダメ元で提出したら運よくAC.嬉しい.
CarpDay.icon解説見たら全然違った...単なるラッキーだったかも.レート+100!
Kaplam.iconhttps://note.com/kidodesuyo/n/n8c92f9db0096?sub_rt=share_pb 嘘解法が通る件について撃墜ケースを作る記事が流れてきたので置いておきます
CarpDay.icon単なるラッキーでした(^^;
〇G問題
#AtCoder #ABC