POJ 1654 Area 計算幾何基礎

2021-07-26 20:27:02 字數 1385 閱讀 8065

題意:乙個人初始在原點,按照題目所給走法,求最後得到的矩形的面積;1~9分別表示八個方向,5表示停止。

分析:以起點為原點,每走一條路,把起點和終點分別和原點連線構成兩個向量,然後用所得向量求出該三角形的面積;最後矩形的面積就是這若干個三角形的面積和。

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

double eps=1e-8;

inline

bool zero(double x)

struct vector

; vector(double _x,double _y):x(_x),y(_y) {};

vector operator+(const vector& b) const

vector operator-(const vector& b) const

vector operator*(double q) const

};typedef vector point;

inline

double dotproduct(const vector& a,const vector& b)

inline

double crossproduct(const vector& a,const vector& b)

struct segment

; segment(point _s,point _e):s(_s),e(_e) {};

};bool isintersected(segment l1,segment l2)

inline

double dist(point a,point b)

inline

bool dotsinline(point a,point b,point c)

point intersection(point u1,point u2,point v1,point v2)

const

int max=1000005;

const

int dx[10]=;

const

int dy[10]=;

int t;

char str[max];

int main()

if (ans<0)

ans=-ans;

if (ans%2==1)

cout

<2

<<".5"

cout

<2

0;}

POJ 1654 Area(計算幾何)

description 乙個座標系,從原點開始走,然後1 4分別代表,向右下走,向右走,向右上走,向下走,5代表回到原點,6 9代表,向上走,向左下走,向左走,向左上走。給出一串包含1 9的字串,問你這些點所圍成的面積 input 第一行為用例組數t,之後t行每行乙個由1 9組成的字串 output...

POJ 1654 Area 有向面積

題目描述 解題思路 利用叉積的性質計算三角形面積然後相加。多邊形不要求一定是凸多邊形,因為叉積計算出的是有向面積,帶有正負號,凹下的部分會自動減去。2014.11.10 problem 1654 memory 932k time 63ms language c result accepted inc...

POJ 1654 Area 求多邊形面積

7 8 9 4 5 6 1 2 3 如上鍵位,從原點開始,按數字幾就是往哪個方向走,5停止 求從原點開始,走過這些的路徑圍成的多邊形的面積,用叉積來算就好了,以原點為起點,很easy 不過爆int了沒弄清楚範圍,wa了幾發!還有就是哪個輸出,一定要弄成這樣,我試了別的都wa。include incl...