Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Grand Contest 036

1完3WA。まあAGCですし。

各問題

A - Triangle

二次元平面上の(0, 0), (x1, y1), (x2, y2)を頂点とする三角形の面積は|x1 * y2 - x2 * y1| / 2で求められます。(私はググりました)

Sが与えられて面積はS / 2ということなので、S = |x1 * y2 - x2 * y1|ということになります。あとはそれを満たすようなx1, y1, x2, y2を適当に求めればいいです。

私はSの平方根を求めて端数を払った後+1してそれをx1とy1として、次にS - x1 * y 1 == x2 * y 2を満たすようにx2, y2を決めました。 (最初の平方根を切り上げではなく、無条件に+1したためS=1018のとき109+1になってしまってWAをひとつ余計に出してしまいましたが・・・。)

公式解説によると、(0, 0), (1000000000, 1)と置いちゃうんですね。

B - Do Not Duplicate

TLE解しか書けずじまいでした。

周期があると思って実装していたのですが、実装がヘボいのか、周期が思ったより長いものがあるのかその両方か、といったところなんでしょうか?

公式解説によると、ダブリングなるものを使うそうで・・・。ほふー。

C以降

見てません。

まとめ

  • ダブリングを勉強する

AGCで初めて水色パフォを出してHighest更新。次回青パフォなら昇級できるところまで来ました。

早く水色になりたーい。

f:id:mdstoy:20190722003808p:plain