POJ1265 计算几何 + 皮克定理 + 公约数确定一条边的点的个数

0

题目

1

分析:

皮克定理:

内部的点的个数 + 边上的点的个数/2 + 1 = 该多边形面积

利用向量叉乘求面积,利用最大公约数求一条边上的点的个数,结合皮克定理,求出内部点的个数。

2

#include 
#include 
#include 
#include 
///int a,int b; (double)(a/b)得到的是int,((double)a)/b 与 a/(double)(b)这两个才都可以得到double
///abs是取绝对值(头文件),fabs(头文件)是浮点数取绝对值
using namespace std;
struct points{
    int x;
    int y;
}point_last,point_cur,point_ini,point_cal;
int n;
int ins;//inside
int edg;//edge
double area;
int gcd(int a,int b){//最大公约数
    return b?gcd(b,a%b):a;
}
void Area(struct points p0,struct points p1,struct points p2){
    area+=( (p1.x-p0.x)*(p2.y-p0.y)-(p1.y-p0.y)*(p2.x-p0.x) );
    //cout<1&&i


你可能感兴趣的:(ACM,几何,ACM,数学)