2023年6月17日土曜日

yukicoder contest 393

 Dまで四完。


No.2354 Poor Sight in Winter

 一応自力でAC。

 二分探索+ダイクストラでいけるんじゃないか? とは問題を見てすぐ思った。

 ただ、a→bのルートに明かりを配置したとき、同時に別のc→dというルートがいけるようになることがある。だから、正当性が怪しい気がして実装せず考え込んでしまった。

 コンテスト後、「とはいえ、a→bのルートに明かりをx個配置したとき同時にa→cもいけるようになったとしたら、a→cもx個でいけるようになるな」と思い、やや正当性に自信が持てなかったものの実装したら(REやTLEを経て)ACした。

 なお、解説を見ると「明らかに,同じ明かりを二度使うことは最適ではありません.同じ明かりを二度使う場合,1 回目に使用してから 2 回目に使用するまでの間を省略できるからです」と書いており、それはそうか、となった。

No.2355 Unhappy Back Dance

 自力AC。

 角度が同じものを列挙すれば良いとは思ったが、三乗かかる気がして悩んだ。
 ただ冷静になると、それほど工夫は必要なく、「一点を固定し他の全ての点に対して角度を求めたものをdictに入れておく」で二乗でいけた。

No.2356 Back Door Tour in Four Seasons

 ちらっと解説を見たけど大体自力でAC。

 扉の順番を決めれば、そう進むときの場合の数は求められる。それを使って総和を求めるという方針。
 解説ではΣ計算を使っているけれど、DPの気持ちで考えた。

・DP[扉]=その扉に至るときの場合の数(それが夏の扉なら、どこかの春の扉→ここ、という感じ。その手前の季節の扉までの行き先を指定する)

 として、ある夏の扉を使っていく場合の数を考えたとき、春の扉たちの場合の数の和がその値になる。……ということは、春夏秋冬それぞれについて和を取って良い、ということになる。

 なお、扉の総数を求めるとき、modで割ってしまいWAを出した。ベキ乗する値にmodを取ってはダメ!

0 件のコメント:

コメントを投稿