ABC320 (2023/09/16)
〇A問題
Kaplam.iconわー簡単な問題だ! nのp乗はn^p! WA!
sakana.icona**b使う
yuichang.iconpow使う
tako.iconやるだけ
まーす.icon与えられた式を計算するだけ.
CarpDay.iconsakana.iconさんと同じ
おたふく.icon CarpDay.iconsakana.icon同様
TK.iconYuto.icon pow
〇B問題
Kaplam.icon前から見ていって、注目している文字と同じ文字が出てきたら逆に辿って注目している文字まで戻った時回文になってたら長さ更新、回文が出てこなかった時用にmax初期値1
sakana.iconreversed()使って回文として一致している文字数を数えた。(回文かどうかの処理が上手くできていなかったためWAも出した)
yuichang.icon0スタートかと思ってペナしちゃった。素直にやる
tako.icon3重ループ
まーす.icon偶数文字からなる回分と奇数文字からなる回文で場合分け.あとは,Kaplam.iconさんと同じ.for文内にbreakを入れるのを完全に忘れておりWA.しかも,途中で諦めてD問題にいったためA問題しか解けなかったという始末(二兎追うものは一兎も得ずってか......).
CarpDay.icon回文→文字反転,までは良かったが,「部分文字列が反転文字列の中に入っているか」で判定できると根本的な勘違い.それなのになぜかWAが1ケースだけ.原因がコーナーケースだと思い込んで,根本的な間違いに気づかず.諦めてC問題へ.コンテスト終了直前に戻って実装方法変更するも,根本的な間違いそのままなのでWA取れず.コンテスト終了して,落ち着いて問題読んで正しく理解してAC.うーん.情けない.
おたふく.icon 回文と判定するために中心に来る文字を仮決めしていき、回文となる長さを計算する。ただし、回文となる文字列の長さが奇数でしか考えておらずWA。偶数の時の処理も付け加えて修正。
Yuto.icon 部分文字列の先頭と末尾を全探索,回文判定はt==reversed(t)でやった.サンプル2のおかげで長さ1があり得ることに気付き,修正.WAを出さずにACできた.
TK.icon部分文字列をすべてループを回して調べていく。
〇C問題
Kaplam.icon最初一度に全部押せると思っててModの条件はスロットの雰囲気付けかなーって書いた後入力例2が合わなくてこれ全押しダメじゃん! って、ネタバレ防止にとりあえずpastebinで書きました、反転文字の入力方法教えて下さいhttps://pastebin.com/FNKjbT94 リンク先n^2→n*2 おたふく.icon 反転文字?伏字でネタバレしないようにしたいという事で合っていますか?伏字の書き方のことであれば、[! 書きたい内容]で書くことが出来ます。
Kaplam.iconそれです、出来ましたありがとうございます
yuichang.iconわかりません。
sakana.icon全探索しようと思ったけどできてない。途中です。
tako.iconわかりません
CarpDay.icon同じ数値が同時に出るときの処理が難しい.思いついた!→実装途中でダメなことに気付く,を繰り返して時間を溶かす...諦めてD問題へ.コンテスト後にしばらく考えて,Mが小さいので止めるタイミングを全探索できることにやっと気付いてAC(解説の「楽な解法」と同じ考えでした).C問題ぐらいまでは素直な心が大切.
おたふく.icon 全探索する。コンテスト中から全探索しようと思って実装していましたが、計算時間が大きくなりすぎる気がして諦めてD問題に行くが、コンテスト後にその方針のまま作りきるとAC。自信を持とう...。
Yuto.icon 基本方針は,0で揃える,1で揃える,...を全通り試す.S[i]に同じ数字が複数個含まれていることを考慮していなかったので2WA.解決策はおそらく分かってるんだけど,勉強会に間に合わなさそうなので,一旦ここまで記録.
TK.icon全探索。permutationを使って、スロットの止める順番をまずすべて用意。その順番で0~9の数字をそろえるのに必要な時間を調べる。調べ方は、時間でループを回して今のスロットの番号が目的の番号になった時に次のスロットに移っていくという感じ。三台そろったらbreakするようにしていたので、多すぎる分にはいいと思い、range(M**3+1)あれば十分回るだろうと思っていたが、M=1のときに時間が1秒までしか進んでいなかった。range(4*M)にしたらAC。
〇D問題
yuichang.icon幅優先探索。seen(0)=true書いてなくてペナ出しまくった。 入緑した! CarpDay.iconおめでとう!
Kaplam.icon同上...なのになぜかWA7が消えなかった、解説見ても特におかしくなさそうだし謎
tako.icon同上。なんかTLE出るなーと思っていたら二次元配列作ってて二重ループしてた
CarpDay.icontako.iconさんと同じく,二次元配列のせいでTLE.TLEの理由がDFSのせいだと思い込み,なかなか原因に気付けず.やっと昔同じミスをしたことを思い出し(確かそのときもtako.iconさんと二人して同じミスをしていた気がする),修正して終了8分前にAC.これでやっと2問正解..
おたふく.icon 相対位置から絶対位置を求めたいので、唯一絶対位置が求まっている人1からDFSを開始する。そこから辿れないところは一意に定まらないと考えて実装。しかし、有向辺の関係上一意に定まるのに辿れない事になってしまう人が居ることにコンテスト中に気付いたが時間が足りず。コンテスト後に両方向の有向辺を張るようにして対応してAC。
Yuto.icon 1番と1番に繋がっている人から順に,絶対位置を確定させていく.順番に見るのはBFSした.BFSの中で,矛盾があるかも確認する.丁寧に実装して一発AC.
TK.icon1番からたどれる人が座標確定できるから、1番からたどれる人をまとめたほうがいいかと思いUnionFind使えるかなと思って準備したが、そもそもたどりながら座標を確定しないといけないので使えないじゃんとなった。DFSでいけそうだなと思いつつもC問題がWA1件だったので先にそちらの解決を優先し、時間ぎれ。C問題のコーナーケースに早めに気付いて時間を使いたかった。
〇E問題
CarpDay.iconコンテスト後に確認.あれ使えばいいんじゃね?20分ぐらいでAC.おーん.
おたふく.icon CarpDay.icon同様に、コンテスト後に確認。heapqで解けそうだなと思い、実装すると30~40分程でAC。C問題より簡単な気が...。
〇F問題
CarpDay.icon往復で給油可能なのが1回のみ,と勘違い.そんな簡単な訳ないよね.サンプル確認して,想定解法で解けそうなのを確認してから実装するよう心がけよう!(これまで何度も言っている気がする.反省)