2021年6月29日火曜日

AtCoder Beginner Contest 207

 ABCEの四完でした。D難しい。


D - Congruence Points

 すぬけさんの解説動画を見てAC。Pythonで$O(N^3)$でも65msでした。

 いやでも確かに難しいのだけど、Sの一点目から二点目へのベクトルが、Tのどの二点のなすベクトルと対応しているか? で二乗をかけるという方針は思いつかないといけないですね。
 そこまでできていれば、回転を複素数で計算という部分はできたかもしれない。本番中にも複素数を使うことは頭をよぎったはずなので。

 コンテスト中は、(他の人も結構ハマってましたが)角度を決め打って云々、という嘘解法にハマってました。

F - Tree Patrolling

 すぬけさんの解説動画を見てAC。
 二乗の木DPの問題は最近も解いていたのだから、自力でできなくちゃいけなかった。

 が、解説を聞いた後なのに、遷移を書くのに苦労したり、modを取り忘れたり、コーナーケースに引っ掛かったりとWAを量産してしまった。

 二乗の木DPで、子同士をマージするときの遷移は大体いつも似た感じいなるのね。FFTを使える形になるらしい。以前の二乗の木DPの問題でも、「遷移を書くのが面倒だったからFFTを使った」とか書いているツイートを見かけたけど、なぜそういうことができるか理解できた。

 それに気付けたのは収穫。

0 件のコメント:

コメントを投稿