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.做计算几何题目,模板 ...
随机推荐
- 【POJ 3630】 Phone List
[题目链接] http://poj.org/problem?id=3630 [算法] 字典树 [代码] #include <algorithm> #include <bitset&g ...
- 洛谷 P3112 后卫马克 —— 状压DP
题目:https://www.luogu.org/problemnew/show/P3112 状压DP...转移不错. 代码如下: #include<iostream> #include& ...
- Appium + python - 监控appium server start
import osimport time as t def start_appium(port = 4723,udid="4871660c"): a = os.popen(&quo ...
- Django day08 多表操作 (四) 一对多, 多对多连续跨表查询
一对多 # 基于双下划线的一对多查询 # 查询出版社为上海出版社的所有图书 # ret = Publish.objects.filter(name='上海出版社').values('book__nam ...
- HTML 13 常用构造函数( 类 )
Number * Data ** String **** Array ***** Math **** RegExp *****
- python 11:range(起始索引,终止索引,步数)(默认情况下步数为1,生成从起始索引,每次增加(终止索引-起始索引)/步数,到终止索引前的数字串)
squares = [] for value in range(1,11): #第三参数默认为1,生成从1开始,每次增加1步数,到11前的10为止的数字串 square = value ** 2 sq ...
- dom转换成jquery对象
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- .Net Core 学习(二)上篇
用Visual Studio和ASP.NET Core MVC创建Web API 1.启动Visual Studio.从文件菜单,选择新建>项目.选择ASP.NET Core Web Appli ...
- 2.0 Linux系统的安装之Fedora安装单系统(2)
2.0 Linux系统的安装之Fedora安装单系统(2) *Linux系统的安装之Fedora安装单系统 恐怕最好装的系统就是Linux系统了,或者与Windows并列.此篇教程为Fedora的单系 ...
- Android,加载离线Android API文档缓慢问题!
解决方法:在host文件末添加如下信息! 0.0.0.0 www.googleapis.com 0.0.0.0 www.google.com 0.0.0.0 www.google-analytics. ...