0.はじめに
今週はA問題から難しいと思っていたらC問題でブレーキ。
結局ABしか解けず終了。
全体的に低かったのか、レートはそこまで落ちず
-4で629でした。ますます緑が遠のいていきます。
1. A - Humidifier 1
この加湿器は穴が開いてて水が減ると言う問題ですが
普通に加湿によって水が減るじゃダメだったのかな・・・。
などと余計なことが気になりました。
T毎の水の量さえ分かればいいので
まず、1行目のTとVを基本とし
2行目以降読み込むごとに、読み込んだTと
前回のVから今回のT時点での水量を求め
そこに今回のVを足すとしました。
今回のT時点での数量を求める際に0以下にはならないように
工夫するところがポイントかなとおもいました。
https://atcoder.jp/contests/abc383/submissions/60507840
2.B - Humidifier 2
え、Bでこれ・・・?
と思う難易度で、まぁ配点も250ではありましたが
なかなか難問でした。
まぁ制約で、HとMが100までだったので多少冗長でも
何とかなるかとの方針ですすめました。
【考え方】
1.マップをもとに床の位置のタプル(x,y)をリストP1に格納
2.P1を2重ループで読み込んで加湿器を置く2か所の全組み合わせに対し以下チェック
2-1.P1を先頭から読み込み2の2か所からそれぞれの距離がD以下だった場合
セットSTにその場所を格納
2-2.セットの長さが最大の物をansに格納
3.ansを出力して終了
2のループを減らす工夫とかいろいろ出来そうでしたが、雑な実装でも
ACとなりました。
https://atcoder.jp/contests/abc383/submissions/60522762
3.C - Humidifier 3
問題を見て、あーDFSね、はいはいと勝手に判断して
とりかかるもTLEが消せず時間だけが過ぎて行きました。
ダメもとでチャットGPTに高速化する方法を聞いたところ
こういうのはDFSではなくBFSだよ。と言われ、変更案まで
出してきたのでその通りにしたら、TLEが1個までにへりました。
DFSでの試行錯誤時の余計なロジックを直したらTLEが消えましたが
その時点で22:40:28と、ぎりぎり間に合いませんでした・・・・。
https://atcoder.jp/contests/abc383/submissions/60544911
以上