POJ 2954 pick公式
這題用到了pick公式,area=on/2+in-1 on為在多邊形邊上的點數,in為在多邊形內的點數。叉積求多邊形麵積,gcd(x,y)為邊上的點數,x為相鄰兩點x差的絕對值,y同理。根據公式可求在多邊形內的點數。
#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); } int ab(int a) { return a>=0?a:-a; } int main() { int x[3],y[3]; while(cin>>x[0]>>y[0]>>x[1]>>y[1]>>x[2]>>y[2],!(!x[0]&&!x[1]&&!x[2]&&!y[0]&&!y[1]&&!y[2])) { int ep=0,area=0,in; for(int i=0; i<3; i++) area+=x[i]*y[(i+1)%3]-y[i]*x[(i+1)%3], ep+=gcd(ab(x[i]-x[(i+1)%3]),ab(y[i]-y[(i+1)%3])); area=ab(area); in=area/2-ep/2+1; printf("%d\n",in); } return 0; }
最後更新:2017-04-03 22:15:45
上一篇:
315,這是一場神奇的晚會
下一篇:
TCPL 閱讀筆記 Chapter1
MySQL中DATA_FORMAT函數的用法
magento 1.4 -- 自定義變量(Custom Variables)使用初探
九月份手機春晚落幕,iPhone5就是趙本山
MSSQL-應用案例-SQL Server 2016基於內存優化表的列存儲索引分析Web Access Log
FormsAuthenticationTicket基於forms的驗證
PIPE2——Petri網編輯工具
Grafana+Prometheus係統監控之SpringBoot
《正則表達式經典實例(第2版)》——2.8 匹配多個選擇分支之一
C++編程規範之15:積極使用const
MOM係列文章之 - MQ生態鏈(第一版,持續更新)