POJ 1654 Area(任意多邊形面積)

2021-09-30 15:06:52 字數 862 閱讀 1213

by---cxlove

題目:從乙個點出發,8個方向,給出每一步的方向,求出走過的路徑形成的多邊形的面積。不過題目說了會首尾相接,而且不會有交叉,不過顯然不一定是凸多邊形。

其實利用向量叉積求解多邊形面積,也不只是適用於凸邊形。出現凹的部分,剛好一正一負,抵消了。

不過這題討厭的是精度。

double是不能過的,必須要用整數,又不能溢位,用64位整數,輸出的時候面積只需要除以2,所以只需要判斷奇偶。。。。。啊啊啊wa好多次不只因為精度,八個方向對應的座標變化錯了好幾次,東西不分啊

#include#include#include#include#include#include#include#include#define ll __int64

#define eps 1e-7

#define n 2000000

#define mod 1000000007

#define inf 1<<30

#define zero(a) (fabs((double)(a))using namespace std;

struct pointp[1000005];

int n;

int way[9][2]=;

ll xmul(point p0,point p1,point p2)

ll area()

char str[1000005];

int main()

ll ans=area();

if(ans%2==0) printf("%i64d\n",ans/2);

else printf("%i64d.5\n",ans/2);

}return 0;

}

POJ 1654 Area 求多邊形面積

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

POJ1654 Area 多邊形的面積

題意 在乙個網格中,你當前在起始點,然後給你一些數字,每個數字表示你往當前位置的8個方向走乙個單位或根號2個單位 斜線方向 然後你到了下乙個網格點了,就這樣讓你走出乙個多邊形,要你輸出該多邊形的面積.題目保證最後一步是回到原點,且保證能形成多邊形。1,2,3,4,6,7,8,9分別表示西南 南 東南...

POJ 1654 Area(計算幾何)

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