seica's team practice 2019 No.1 (The 2018 Amman Collegiate Programming Contest)
seica, mamumamu, m_99 でチーム練をしました。
チーム名は気まぐれです。
難易度的には簡単な方っぽい。
~~~~~~ 以下ネタバレ ~~~~~~
コンテストの動き
mamumamuがA、私がB、m_99がCを読みます。
BとCはやるだけだったので適当に通します*1。
Aに関しては奪う区間の片方をどこかの区間の端に合わせれば見る箇所はm箇所なのであとは実装...。
右端を合わせるか左端を合わせるかみたいな話が少々面倒臭いですができそうなのでmamumamu に実装を投げますが、難しいので様子を見つつ他の問題に手をつけます。
ここで順位表を見るとHIが解かれていたのでm_99と私でそれを通します*2
。
Aがバグったっぽい、適度にデバッグを見つつ次の問題へ。
次はFっぽいです。
出来るだけ小さいもので貪欲に置き換えれそうですが。私が「エラトステネスの篩」が言えなくなって壊れます。
誤読で2WA出すもAC*3。
Aがバグったっぽい、適度にデバッグを見つつ次の問題へ。
次に通されていたのがDE。
Dに関して、基本的に縦か横のみで構築したくなりますが、6*5のケースでお絵描きすると反例が。
<><>< ><><> <><>< ><><> <><>< ><><>
ではなくて
^<><> v^<>< >v^<> <>v^< ><>v^ <><>v
こんな感じ。
この斜め横断を出来るだけ作れば良さそうということで投げるとAC、やったね。
Eはグリッドの端(?)にくる面(?)個数を数えればいいということでAC。
2問とも実装軽くっていい感じでした。
あまり解かれていないものの流石にAに注力します。
実装方針は大事ですね、頑張るとAが通ります。
Mを見ます。
LCAやるだけなことがわかったので書きます。
MLEします。
// typedef long long ll; typedef int ll;
MLEします。
グローバルできるものをグローバルにおきます。
REします。
MLEします。
二次元vectorを一次元にします。
MLEします。
...。
テストケースごとにinit()で初期化するように書いていたのにinit()を呼んでいないことに気がつきます(!?!?)。
TLEします。
cinをscanfにします。
ACします、大事故。
Jです、上位ビットから固定していけばできそうなので実装をお願いすると少しバグるもAC。
Gわかりそうでわからないと言ってる間に終了。
感想
下らないミスが多すぎました、反省です。
話し合いは割と上手く言ってた気がする、多分。