ABC293 (2023/03/11)
https://atcoder.jp/contests/abc293/tasks
〇A問題
Yuto.icon Sを0-indexedで受け取ったので,2*i-1, 2*iの代わりに,2*i,2*i+1をswapした.
TK.iconSをリストで受け、Sの長さ分2飛ばしでループ回して、今の番号の文字と次の文字を入換え
CarpDay.iconSの長さ分2飛ばしでループ回して、今の番号の文字と次の文字を入換えた文字列を作成
おたふく.icon Yuto.iconと同様。
まーす.iconおたふく.icon,yuto.iconと同じ方針。ただ、配列を空白なしでアウトプットさせる(a s d f g h j kのような感じになっていた)のがよくわからず時間を食った。
〇B問題
Yuto.icon 言われたことをやるだけ
TK.icon呼ばれたかどうかを管理するリストを作成、Falseの人数をカウント、Falseの番号を順に出力
CarpDay.icon慌てすぎて読み間違いして時間ロス.言われたとおりに実装.
おたふく.icon 呼ばれたかどうかを管理するリストを作成し、Falseの人だけを抜き出してリストに保存する。
まーす.icon呼ばれたひとの配列を用意し、その人の順番になるとifでスキップ。あとは補集合。
〇C問題
Yuto.icon マスの大きさが小さいうえに移動方向も限られているので,一旦経路をDFSで全列挙.その後条件を満たす個数を数える.やることは簡単だけど,実装力が無くて,無駄に時間がかかってしまった...
TK.icon最短経路の組み合わせを考える際に、次のマスに場合の数を足していくやつ(中学校の最短経路の組み合わせの数え方)のイメージで場合の数を最後のマスまでbfsで遷移させるdpっぽい考え方ができそうだと思ったがうまくできなかった。ハンドシミュレーションとdpの結果が合わない部分があるので、実装に何か見落としがありそう。2連続で本番C通らなかったの普通にショック...
CarpDay.iconREの原因が分からず,最後まで解けず.終了後に気になる点を修正するもRE...あれ?まさか...最低のチョンボでした..
おたふく.icon CarpDay.iconと同様REに悩む。気付くのにとても時間を要する。ちなみにとてもしょうもないRE。
〇D問題
Yuto.icon 各代表根をrとして,r -> rへの最長経路(r以外は一度しか通らない)がuf.size[r]と一致すればX++.これをUnionFindとDFSで実装しようとしてたらコンテストが終わりました..解けなかったの悔しい
Yuto.icon コンテスト翌日,問題文を眺めていたら「各ロープについて、同じ色の端が複数回結ばれることはありません。」という文章を発見.コンテスト中はこれを見逃していて,正方形に対角線を付けた様なもの(つまり,次数3以上)もありえると思い,難しく考えてしまった.問題文をちゃんと理解すれば,めちゃくちゃ簡単な問題. 問題文はちゃんと読もう
TK.iconCに時間を費やしたためこれ以降見れていない
CarpDay.icon途中で問題読み直して気付く.結構時間費やして作成したプログラムを全て捨てて,短時間で実装.
おたふく.icon みんな大好きUnionfind。閉路を検出するだけで良いことに気付く。初めての1位でモチベーションUP。
〇E問題
Yuto.icon 数学だったので飛ばした.
Yuto.icon 解説読んだ.等比数列の和とか,逆元とか,繰り返し二乗法とか久しぶりすぎて全く思いつかなかった..
CarpDay.icon楽勝問題かと思ったら甘かった.MODINTが適用できる条件をきちんと理解できていませんでした.
〇F問題
Yuto.icon これ以降見てない
CarpDay.icon同上.先週やっと上げたランクを1週で落とす.orz..
#ABC #BFS/DFS #UnionFind #Mod(剰余算)