题目描述:

vjudge

POJ

由于题目乱码概括一下题意:

给出一个路径,求围成多边形中内部点数、边上点数(包括顶点)以及面积。

题解:

边上点数=$\sum gcd(dx,dy)$

$Pick$定理:设$a$表示内部点数,$b$表示边上点数(包括顶点),$S$表示面积。则$$S=a+ \frac{ b }{ 2 } -1$$

代码:

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = ;
struct Point
{
ll x,y;
Point(){}
Point(ll x,ll y):x(x),y(y){}
Point operator + (const Point&a)const{return Point(x+a.x,y+a.y);}
Point operator - (const Point&a)const{return Point(x-a.x,y-a.y);}
ll operator ^ (const Point&a)const{return x*a.y-y*a.x;}
};
typedef Point Vector;
int T,n;
Point p[N];
ll gcd(ll x,ll y){return y?gcd(y,x%y):x;}
void work(int Sce)
{
scanf("%d",&n);
ll S = ,b = ;
Point s0(,),s1(,),s2(,);
Vector v;
for(int i=;i<=n;i++)
{
scanf("%I64d%I64d",&v.x,&v.y);
ll x = v.x,y = v.y;
if(x<)x=-x;
if(y<)y=-y;
b += gcd(x,y);
s1 = s2,s2 = s2 + v;
S += ((s1-s0)^(s2-s0));
}
if(S<)S=-S;
ll a = (S+-b)/;
printf("Scenario #%d:\n",Sce);
printf("%I64d %I64d ",a,b);
if(S&)printf("%I64d.5\n\n",S/);
else printf("%I64d.0\n\n",S/);
}
int main()
{
scanf("%d",&T);
for(int i=;i<=T;i++)work(i);
return ;
}

poj1265 Area的更多相关文章

  1. POJ1265 Area 多边形内格点数 Pick公式

    POJ1265给定一个多边形 计算边上的格点 内部的格点 以及多边形的面积 利用Pick公式  面积=内部格点数+边上格点数/2-1 将多边形分割为三角形容易证得上述公式 计算面积用叉积,计算边上格点 ...

  2. POJ1265——Area(Pick定理+多边形面积)

    Area DescriptionBeing well known for its highly innovative products, Merck would definitely be a goo ...

  3. POJ1265:Area(多边形面积公式+pick公式) 好题

    题目:http://poj.org/problem?id=1265 题意 : 给你一个点阵,上边有很多点连成的多边形,让你求多边形内部的点和边界上的点以及多边形的面积,要注意他每次给出的点并不是点的横 ...

  4. poj1265&&2954 [皮克定理 格点多边形]【学习笔记】

    Q:皮克定理这种一句话的东西为什么还要写学习笔记啊? A:多好玩啊... PS:除了蓝色字体之外都是废话啊...  Part I 1.顶点全在格点上的多边形叫做格点多边形(坐标全是整数) 2.维基百科 ...

  5. [转]NopCommerce How to add a menu item into the administration area from a plugin

    本文转自:http://docs.nopcommerce.com/display/nc/How+to+code+my+own+shipping+rate+computation+method Go t ...

  6. ASP.NET MVC系列:Area

    1. Area简介 ASP.NET MVC Area机制构建项目,可以将相对独立的功能模块切割划分,降低项目的耦合度. 2. Area设置Routing 新建Admin Area后,自动创建Admin ...

  7. Web API项目中使用Area对业务进行分类管理

    在之前开发的很多Web API项目中,为了方便以及快速开发,往往把整个Web API的控制器放在基目录的Controllers目录中,但随着业务越来越复杂,这样Controllers目录中的文件就增加 ...

  8. MVC View中获取action、controller、area名称

    获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); 获取Action名称: ViewContext.Ro ...

  9. [LeetCode] Rectangle Area 矩形面积

    Find the total area covered by two rectilinear rectangles in a2D plane. Each rectangle is defined by ...

随机推荐

  1. C 语言实例 - 判断正数/负数

    C 语言实例 - 判断正数/负数 用户输入一个数字,判断该数字是正数还是负数或是零. 实例 #include <stdio.h> int main() { double number; p ...

  2. RobotFramework学习笔记-Web自动化

    一.窗口关键字使用 1.当前浏览器弹出新的窗口 使用Select Window和Close Window处理弹出窗口.实际使用中Select Window不一定会一次选中,通常会结合Wait Unti ...

  3. iOS 技术支持

    iOS 技术支持网址:有问题或建议请留言. 邮箱地址:odeyrossskudder4266848@mail.com iOS program design & system consultat ...

  4. java.exe is valid, but is for a machine type other than the current machine

    java.exe is valid, but is for a machine type other than the current machine jdk版本不一致问题,在32位机器上使用64位的 ...

  5. go系列(6)- beego日志模块的使用

    1.安装日志模块 切换到工作目录,下载日志模块 cd /data/work/go/ go get github.com/astaxie/beego/logs 2.导入日志模块 使用的时候,需要导入模块 ...

  6. 关系型数据库---MySQL---索引

    1.概述 参考资料:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 1.1 索引的本质: MySQL官方对索引的定义:索引 ...

  7. (转)nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录

    nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录 原文:http://www.cnblogs.com/kevingrace/p/6165572.html Nginx的geo模块 ...

  8. Java中的switch语句——通过示例学习Java编程(8)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=19 当我们在代码逻辑中有多个选项,而且需要为每个选 ...

  9. JAVA分包下项目部分代码存储

    一.注册时姓名去重和符合汉字格式: // 新用户申请加入 public void NewHuman() { System.out.println("========新会员申请加入页面==== ...

  10. window.open()弹出窗口参数说明及居中设置

    window.open()可以弹出一个新的窗口,并且通过参数控制窗口的各项属性. 最基本的弹出窗口代码 window.open('httP://codeo.cn/'); window.open()各参 ...