題意:在平面直角座標系下,從原點開始按照指令移動。指令由數字1-9給出,每種數字表示乙個方向,包括四個正向以及四個對角方向(其中數字5表示回到原點,輸入保證圖形最終都能夠回到原點)。求這些點所圍成的面積。
思路:原點和相鄰的兩個點圍成乙個三角形,求所有這些三角形的「有向」面積之和即可。求面積所用的方法為向量叉積,所以為有向面積。有向面積可以適用於凹多邊形。
注意精度,要用64位整數而不用double。而且64位整數不能用abs函式取絕對值。
#include #include #include #define n 1000005
char s[n];
int t,n;
int ori[11][2] = ,,,,,,,,,};
__int64 area(__int64 x1,__int64 y1,__int64 x2,__int64 y2)
int main(){
freopen("a.txt","r",stdin);
scanf("%d\n",&t);
while(t--){
int i,len;
__int64 x,y,xx,yy,res=0;
scanf("%s",s);
len = strlen(s);
x = ori[s[0]-'0'][0];
y = ori[s[0]-'0'][1];
for(i = 1;i
POJ1654 多邊形面積)
題目 area 題意 在乙個網格中,你當前在起始點,然後給你一些數字,每個數字表示你網當前位置的8個方向走一步.然後你到了下乙個網格點了,就這樣讓你走出乙個多邊形,要你輸出該多邊形的面積.題目保證最後一步是回到原點,且保證能形成多邊形.圖示 分析 求的是多邊形的面積,我們有求多邊形面積的三角形法。首...
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...