Area POJ - 1265 -皮克定理-叉积
Area
皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式,该公式可以表示为2S=2a+b-2,
其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。
适用范围:必须是格点多边形。S = A / 2 + B - 1
#include<stdio.h>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxn 1234
struct node
{
int x,y;
} a[maxn];
int s1[maxn],s2[maxn];
double area;
int t,m,A,B;
int main()
{
scanf("%d",&t);
for(int i=1; i<=t; i++)
{
a[0].x=a[0].y=0;
area=A=0;
memset(s1,0,sizeof(s1));
memset(s2,0,sizeof(s2));
scanf("%d",&m);
for(int j=1; j<=m; j++)
{
scanf("%d%d",&a[j].x,&a[j].y);
if(a[j].x==0)A+=abs(a[j].y);
else if(a[j].y==0)A+=abs(a[j].x);
else A+=__gcd(abs(a[j].x),abs(a[j].y));
a[j].x+=a[j-1].x;
a[j].y+=a[j-1].y;
}
a[m+1]=a[1];
for(int j=1; j<=m; j++)
{
s1[j]+=s1[j-1]+a[j].x*a[j+1].y;
s2[j]+=s2[j-1]+a[j].y*a[j+1].x;
}
area=abs(s1[m]-s2[m]);
B=(area+2-A)/2;
area=double(area)/2.0;
printf("Scenario #%d:\n%d %d %.1f\n\n",i,B,A,area);
}
return 0;
}
Area POJ - 1265 -皮克定理-叉积的更多相关文章
- POJ 2954 /// 皮克定理+叉积求三角形面积
题目大意: 给定三角形的三点坐标 判断在其内部包含多少个整点 题解及讲解 皮克定理 多边形面积s = 其内部整点in + 其边上整点li / 2 - 1 那么求内部整点就是 in = s + 1 - ...
- POJ 1265 /// 皮克定理+多边形边上整点数+多边形面积
题目大意: 默认从零点开始 给定n次x y上的移动距离 组成一个n边形(可能为凹多边形) 输出其 内部整点数 边上整点数 面积 皮克定理 多边形面积s = 其内部整点in + 其边上整点li / 2 ...
- Area - POJ 1265(pick定理求格点数+求多边形面积)
题目大意:以原点为起点然后每次增加一个x,y的值,求出来最后在多边形边上的点有多少个,内部的点有多少个,多边形的面积是多少. 分析: 1.以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其 ...
- POJ 1265 pick定理
pick公式:多边形的面积=多边形边上的格点数目/2+多边形内部的格点数目-1. 多边形边上的格点数目可以枚举每条边求出.如果是水平或者垂直,显然可以得到,否则则是坐标差的最大公约数减1.(注这里是不 ...
- POJ 1265 Area POJ 2954 Triangle Pick定理
Area Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5227 Accepted: 2342 Description ...
- POJ 1265 Area (Pick定理 & 多边形面积)
题目链接:POJ 1265 Problem Description Being well known for its highly innovative products, Merck would d ...
- poj 1265 Area 面积+多边形内点数
Area Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5861 Accepted: 2612 Description ...
- POJ 2954-Triangle(计算几何+皮克定理)
职务地址:POJ 2954 意甲冠军:三个顶点的三角形,给出,内部需求格点数. 思考:就像POJ 1265. #include <stdio.h> #include <math.h& ...
- poj1265&&2954 [皮克定理 格点多边形]【学习笔记】
Q:皮克定理这种一句话的东西为什么还要写学习笔记啊? A:多好玩啊... PS:除了蓝色字体之外都是废话啊... Part I 1.顶点全在格点上的多边形叫做格点多边形(坐标全是整数) 2.维基百科 ...
随机推荐
- vue this触发事件
@click="aHref(index,$event)" aHref: function(url,event){ this.$router.push(url); $(event.c ...
- CSS在线字体库,外部字体的引用方法@font-face
@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体,你们当中或许有许 ...
- 移动端点击出现阴影 css解决方案
a,img,button,input,textarea,div{-webkit-tap-highlight-color:rgba(255,255,255,0);}
- respberry2b + android5.1
链接: http://pan.baidu.com/s/1kUf6UtL 密码: xz4g 安装教程:http://tieba.baidu.com/p/3963061007 如果安装后打开相册崩溃,则下 ...
- gnuradio 打包脚本
#!/bin/sh echo "cd build" cd build echo "rm -rf **" rm -rf ** echo "cmake . ...
- Nginx的进程模型及高可用方案(OpenResty)
1. Nginx 进程模型简介 Nginx默认采用多进程工作方式,Nginx启动后,会运行一个master进程和多个worker进程.其中master充当整个进程组与用户的交互接口,同时对进程进行监护 ...
- LeetCode(99):恢复二叉搜索树
Hard! 题目描述: 二叉搜索树中的两个节点被错误地交换. 请在不改变其结构的情况下,恢复这棵树. 示例 1: 输入: [1,3,null,null,2] 1 / 3 \ 2 输出 ...
- 《剑指offer》 树的子结构
本题来自<剑指offer> 树的子结构 题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 思路: 分两步走: 第一步:判断根节点,两个根节 ...
- VGG-Net
论文下载 源码GitHub 目的 这篇文章是以比赛为目的——解决ImageNet中的1000类图像分类和定位问题.在此过程中,作者做了六组实验,对应6个不同的网络模型,这六个网络深度逐渐递增的同时,也 ...
- Gitbush笔记
1.如果要想模拟浏览器发送get请求,就要使用Request对象,通过Request对象添加HTTP头,就可以伪装成浏览器. from urllib impor request req=request ...