yu/logs/*

技術メモ など

AtCoder ABC224 C 解法メモ 3点の座標から三角形の面積を求めたい

覚えてなかったのでメモ

解いていた問題

atcoder.jp

解法メモ

  • 3点の座標から三角形の面積を求める

    • 3点(x1, y1), (x2, y2), (x3, y3)の面積は↓のような計算式になる

           1.0 / 2.0 * ((x1 - x3) * (y2 - y3) - (x2 - x3) * (y1 - y3)).absoluteValue
      
    • 3点が直線の場合に面積0となるためそこを利用して三角形になるか判定する

  • N <= 300のため、全探索してもO(N3)でも間に合う(解説より)

    • 300*300*300=27000000 で、3107程度となりやや不安だったので、for (i in 0 until n) for (j in i until n) for (k in j until n)として4545100回(4106程度)のループに削減

提出した回答

参考