poj1265 Area
题目描述:
由于题目乱码概括一下题意:
给出一个路径,求围成多边形中内部点数、边上点数(包括顶点)以及面积。
题解:
边上点数=$\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的更多相关文章
- POJ1265 Area 多边形内格点数 Pick公式
POJ1265给定一个多边形 计算边上的格点 内部的格点 以及多边形的面积 利用Pick公式 面积=内部格点数+边上格点数/2-1 将多边形分割为三角形容易证得上述公式 计算面积用叉积,计算边上格点 ...
- POJ1265——Area(Pick定理+多边形面积)
Area DescriptionBeing well known for its highly innovative products, Merck would definitely be a goo ...
- POJ1265:Area(多边形面积公式+pick公式) 好题
题目:http://poj.org/problem?id=1265 题意 : 给你一个点阵,上边有很多点连成的多边形,让你求多边形内部的点和边界上的点以及多边形的面积,要注意他每次给出的点并不是点的横 ...
- poj1265&&2954 [皮克定理 格点多边形]【学习笔记】
Q:皮克定理这种一句话的东西为什么还要写学习笔记啊? A:多好玩啊... PS:除了蓝色字体之外都是废话啊... Part I 1.顶点全在格点上的多边形叫做格点多边形(坐标全是整数) 2.维基百科 ...
- [转]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 ...
- ASP.NET MVC系列:Area
1. Area简介 ASP.NET MVC Area机制构建项目,可以将相对独立的功能模块切割划分,降低项目的耦合度. 2. Area设置Routing 新建Admin Area后,自动创建Admin ...
- Web API项目中使用Area对业务进行分类管理
在之前开发的很多Web API项目中,为了方便以及快速开发,往往把整个Web API的控制器放在基目录的Controllers目录中,但随着业务越来越复杂,这样Controllers目录中的文件就增加 ...
- MVC View中获取action、controller、area名称
获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); 获取Action名称: ViewContext.Ro ...
- [LeetCode] Rectangle Area 矩形面积
Find the total area covered by two rectilinear rectangles in a2D plane. Each rectangle is defined by ...
随机推荐
- Spring配置文件xsi:schemaLocation无法解析导致启动失败的解决方案
今天遇到过情况,spring的配置文件在本地读取没有问题,扔到线上服务器运行就报无法解析xml,找了很久问题,发现是因为线上服务器无法上网,导致无法下载相关的xsd文件,没办法不能上网就只有使用本地的 ...
- LDAP第三天 MySQL+LDAP 安装
https://www.easysoft.com/applications/openldap/back-sql-odbc.html OpenLDAP 使用 SQLServer 和 Oracl ...
- Tomcat,Apache,JBoss的区别
1.Apache是Http服务器,Tomcat是web服务器,JBoss是应用服务器. 2.Apache解析静态的html文件:Tomcat可解析jsp动态页面.也可充当servlet容器. 详细内容 ...
- LVM逻辑卷基本概念以及相关操作
一.LVM概念 LVM(Logical Vloume Manager):它是linux环境下对磁盘进行管理的一种机制,正常挂载的磁盘在磁盘资源快要耗尽时,无法动态拉伸增加资源,或由于特殊情况需要动态缩 ...
- python序列化模块 json&&pickle&&shelve
#序列化模块 #what #什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程叫做序列化. #why #序列化的目的 ##1.以某种存储形式使自定义对象持久化 ##2.将对象从一个地方传递 ...
- mac下配置php+mysql+nginx遇到的问题
1.mysql:没有useradd和groupadd命令,好在原来的/etc/passwd有了mysql,www用户,/etc/group下也有了mysql,www用户组 2.nginx:编译ngin ...
- SpringBoot---核心---基本配置
1.[入口类和@SpringBootApplication注解] 2.[关闭特定的配置] 3.[定制Banner] 1.1 修改Banner 1.2 关闭Banner 4.SpringBoot配置文件
- Map和Map.Entry
Map是java中的接口,Map.Entry是Map的一个内部接口. Map.entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry. Map.Entry是Map声明的一 ...
- spring项目后台中打印sql语句
配置方法很简单,只要在配置文件application.yml加入以下语句 logging: level: main.java.iReview.dao: debug 其中包的位置应为dao层的包位置,不 ...
- IO(File、递归)
第1章 File 1.1 IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下 ...