題目:area
題意:在乙個網格中,你當前在起始點,然後給你一些數字,每個數字表示你網當前位置的8個方向走一步.然後你到了下乙個網格點了,就這樣讓你走出乙個多邊形,要你輸出該多邊形的面積. 題目保證最後一步是回到原點,且保證能形成多邊形.
圖示:
分析:求的是多邊形的面積,我們有求多邊形面積的三角形法。首先我們將所有的點都找到,然後代入去計算就可以了。特點是這個面積要麼是個整數,要麼是0.5的倍數,所以可以先計算面積的倆倍,最後再來除。
sample input
4sample output5825
6725
6244865
0**:00.5
2
#include #include #include using namespace std;
const int n=1000010;
struct point
point(int x,int y):x(x),y(y)
} ;typedef point vector;
vector operator - (point a,point b)
long long cross(vector a,vector b)
long long polygonarea(point *p,int n)
const int dx=; //將數值對映成座標
const int dy=;
char str[n];
point p[n];
int n;
int main()
}
poj 1654 多邊形面積
題意 在平面直角座標系下,從原點開始按照指令移動。指令由數字1 9給出,每種數字表示乙個方向,包括四個正向以及四個對角方向 其中數字5表示回到原點,輸入保證圖形最終都能夠回到原點 求這些點所圍成的面積。思路 原點和相鄰的兩個點圍成乙個三角形,求所有這些三角形的 有向 面積之和即可。求面積所用的方法為...
POJ 1654(計算幾何基礎多邊形面積)
題意 給你一串數字,每個數字分別代表不同的方向,一定是在1x1的格仔中走動,問最後圍成的多邊形面積是多少 題解 將整個多邊形劃分,ans 相鄰兩個點分別與原點構成的線段的叉積 2 由叉積的幾何意義可知求得的結果是乙個平行四邊形的面積 include include include include i...
POJ 1654 Area 求多邊形面積
7 8 9 4 5 6 1 2 3 如上鍵位,從原點開始,按數字幾就是往哪個方向走,5停止 求從原點開始,走過這些的路徑圍成的多邊形的面積,用叉積來算就好了,以原點為起點,很easy 不過爆int了沒弄清楚範圍,wa了幾發!還有就是哪個輸出,一定要弄成這樣,我試了別的都wa。include incl...