幾何

SRM 641 div1

easy 頂点を4つの象限で分類して(軸は適当に含める)考えると、原点を内部に含む三角形は次の二つのうちいずれかを満たすことに気づく。 (1)頂点が向かい合う二つの象限(または軸の上)にある (2)頂点が三つの象限(または軸の上)にある(1)について、ある…

AOJ 0016

三角関数を使うだけ 出力形式を間違えていて、WA量産しまくった。 問題文をよく読もう(小学生並) #include <cstdio> #include <cmath> using namespace std; const double PI2 = 3.1415926535 * 2; int main(){ double x=0, y=0; double r = 0.0; int N; double d; while(sc</cmath></cstdio>…

AOJ 0010

解法 外接円は辺の垂直二等分線だから、適当に方程式作って解かせるだけ。 0で割り算しないように、分母が0になるときは適当な小さい値を足してしまえばいい #include <cstdio> #include <cmath> #include <algorithm> using namespace std; double jijo(double a){ return a*a; } int </algorithm></cmath></cstdio>…

AOJ_0012 A Point in a Triangle

問題 解法 △ABC = △PAB + △PBC + △+PCA がなりたてば内部にある。 面積はベクトルの外積を使えば求まるらしい。 #include <cstdio> #include <algorithm> #define EPS 1e-9 class P{ public: double x, y; double cross(P p){ //外積を求める return (x * p.y - y * p.x); } P o</algorithm></cstdio>…

AOJ_0107 Carry a Cheese

問題 解法 直方体の3種類の大きさの面のうち、いづれかが穴の中に収まるなら、 その直方体は穴を通り抜けられる。 穴の半径をR,面の縦の長さをa,面の横の長さをbとすると 面が穴に収まるかの判定は、三平方の定理を用いて、 (2R)^2 > a^2 + b^2 をみたすかど…

POJ_1118 Lining Up

問題 座標が整数の点がN個(1解法 点を2個決め、その2点を通る直線は何個の点を通るか調べていけばいい。3点 p1(x1,y1), p2(x2,y2), p3(x3,y3)が一直線上にある時、次の式が成立する。 (x2 - x1) * (y3 - y1) = (x3 - x1) * (y2 - y1) [証明] p1,p2を通る直…