POJ 2954
PICK定理:格子上的多边形面积=边界上格子点数/2+内部点数-1。
利用叉积求出面积。再枚举边上的点数。然后按公式求出内部点数就可以了。
关于PICK:http://blog.csdn.net/i_fuqiang/article/details/9817343
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm> using namespace std; int x1,x2,x3,yy1,y2,y3; int main(){
while(cin>>x1>>yy1>>x2>>y2>>x3>>y3){
if(x1==0&&yy1==0&&x2==0&&y2==0&&x3==0&&y3==0) break;
double A=0.5 * abs((x1 - x3)*(y2 - yy1) - (x1 - x2)*(y3 - yy1));
int k; int tmp=0;
if(x1==x2)
tmp+=(max(y2,yy1)-min(y2,yy1)+1);
else {
k=max(x1,x2);
for(int i=min(x1,x2);i<=k;i++){
if(((yy1-y2)*(i-x2))%(x1-x2)==0)
tmp++;
}
}
if(x1==x3)
tmp+=(max(yy1,y3)-min(yy1,y3)+1);
else{
k=max(x1,x3);
for(int i=min(x1,x3);i<=k;i++){
if(((yy1-y3)*(i-x3))%(x1-x3)==0)
tmp++;
}
}
if(x2==x3)
tmp+=(max(y2,y3)-min(y2,y3)+1);
else{
k=max(x2,x3);
for(int i=min(x2,x3);i<=k;i++){
if(((y2-y3)*(i-x3))%(x2-x3)==0)
tmp++;
}
}
tmp-=3;
int ans=((A+1)*2-tmp)/2;
cout<<ans<<endl;
}
return 0;
}
POJ 2954的更多相关文章
- POJ 1265 Area POJ 2954 Triangle Pick定理
Area Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5227 Accepted: 2342 Description ...
- poj 1265&&poj 2954(Pick定理)
Area Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5811 Accepted: 2589 Description ...
- poj 2954 Triangle 三角形内的整点数
poj 2954 Triangle 题意 给出一个三角形的三个点,问三角形内部有多少个整点. 解法 pick's law 一个多边形如果每个顶点都由整点构成,该多边形的面积为\(S\),该多边形边上的 ...
- poj 2954 Triangle(Pick定理)
链接:http://poj.org/problem?id=2954 Triangle Time Limit: 1000MS Memory Limit: 65536K Total Submissio ...
- Triangle - POJ 2954(求三角形内的格子点的个数)
Pick公式:平面上以格子点为顶点的简单多边形的面积=边上的点数/2+内部的点数+1. 代码如下: -------------------------------------------------- ...
- poj 2954 Triangle
pick公式+gcd公式 #include<iostream> #include<map> #include<string> #include<cstring ...
- POJ 2954 Triangle (pick 定理)
题目大意:给出三个点的坐标,问在这三个点坐标里面的整数坐标点有多少个(不包含边上的) 匹克定理:I = (A-E) / 2 + 1; A: 表示多边形面积 I : 表示多边形内部的点的个数 E: 表示 ...
- POJ 2954 /// 皮克定理+叉积求三角形面积
题目大意: 给定三角形的三点坐标 判断在其内部包含多少个整点 题解及讲解 皮克定理 多边形面积s = 其内部整点in + 其边上整点li / 2 - 1 那么求内部整点就是 in = s + 1 - ...
- [转] POJ计算几何
转自:http://blog.csdn.net/tyger/article/details/4480029 计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板 ...
随机推荐
- 【转】UINavigationController 直接返回到第一级目录
原文网址:http://blog.csdn.net/justinjing0612/article/details/7360852 [self.navigationController popViewC ...
- CSS实现列表li边框重合问题
CSS实现列表li边框重合问题 2017年04月13日 21:04:18 阅读数:5066 在我们写东西的时候经常要用到ul,但是也经常会出现li边框重合的问题,如下图: 可以看到每个格子的右边框和 ...
- [Apple开发者帐户帮助]三、创建证书(6)创建创建VoIP服务证书
VoIP:基于IP的语音传输(英语:Voice over Internet Protocol,缩写为VoIP)是一种语音通话技术,经由网际协议(IP)来达成语音通话与多媒体会议,也就是经由互联网来进行 ...
- Django day08 多表操作 (三) 基于对象的跨表查询 基于双下划线的多表查询
一: 基于对象的跨表查询 1. 一对一 正向: 反向: 2. 一对多 正向: 反向: 3.多对多 正向: 反向: 4.*****基于对象的多表查询 二: 基于双下划线的多表查询 1. 连表查询 一对一 ...
- JS网页播放声音实现代码兼容各种浏览器
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- CAS配置(1)SSL证书配置
一.配置源码 源码配置稍后提供 二.系统环境安装 安装JDK配置,版本>=1.7 环境变量配置(参考): JAVA_HOME=C:\Program Files x86)\Java\jdk1.7. ...
- CentOS7 搭建Kafka(一)zookeeper篇
CentOS7 搭建Kafka(一)zookeeper篇 近几年当红小生Kafka备受各路英雄好汉追捧,一点不比老前辈RabbitMQ和ActiveMQ差,因为流行,所以你就得学啊:我这么懒,肯定是不 ...
- 画板(适用于手机、PC端)
Html代码 <script type="text/javascript" src="jquery-1.9.1.min.js"></scrip ...
- css3中的box-sizing属性的使用
box-sizing属性用来定义元素的width和height所表示的区域,该属性一般有三种值:content-box.border-box.inherit. 其中inherit表示box-sizin ...
- 【JAVA练习】- 接收三个班各四个学员的成绩,算平均分
package class_average; import java.util.Scanner;//调用Scanner类 public class average { public static vo ...