poj 1265 Area
来源:互联网 发布:黄金软件哪个好 编辑:程序博客网 时间:2024/05/21 17:28
现在发现自己在数学就是一个战五渣,知道公式直接就出来了
简要说明:对于格点多边形(即在一个网格中,所有的顶点均在格点上的多边形),其面积公式 A = b / 2 + i - 1;
其中b为在边上的格点数,i为在多边形内部的格点数
格点多边形边上的格点数b的求法:每条边上的格点数相加
假设给定边e,两端点为p1(x1,y1),(x2,y2);则边e上的格点数为GCD(x2-x1,y2-y1),注意:此处求出的格点数只包含一个端点。GCD为最大公约数
poj1265:给定一个格点多边形,求出内部点数i,边上点数b,和面积a
面积用叉积求,b用上述方法求,i由公式得
#include <iostream>#include <cstdio>#include <math.h>#include <algorithm>#include<iomanip>using namespace std; int GCD(int a, int b) { while (b) { int r = b; b = a % b; a = r; } return a;}int main(){ int t, cas, n, i, x1, y1, x2, y2, dx, dy, on, in, area; scanf ("%d", &cas); for (t = 1; t <= cas; t++) { scanf("%d",&n); x1=x2=y1=y2=on=area=0; for(i=1;i<=n;i++) {scanf("%d%d",&dx,&dy); x2=x1+dx; y2 = y1 + dy; on += GCD(abs(dx), abs(dy)); area+=x1*y2-x2*y1; x1=x2; y1=y2; } in=(area+2-on)/2; printf ("Scenario #%d:\n%d %d %.1lf\n\n", t, in, on, area/2.0); } return 0;}
0 0
- Poj 1265 Area
- poj 1265 Area
- POJ 1265 Area
- poj 1265 Area
- POJ 1265 Area
- POJ 1265 Area
- POJ 1265 Area
- POJ 1265 Area
- poj 1265 Area
- POJ 1265:Area
- POJ 1265 Area
- POJ 1265 Area
- poj 1265 Area
- poj-1265 Area
- poj 1265 Area
- POJ 1265 Area
- POJ 1265 Area
- poj 1265 Area
- 视觉盛宴之INTERCATIVE DHTML
- 文章标题
- 在CentOS最小化服务器版本中如何查找网卡IP和其它详细信息?
- java 验证码
- MYSQL相关
- poj 1265 Area
- poj 1611 The Suspects(并查集)
- 网络爬虫爬取小说3
- map的4中遍历方式
- TF-IDF权重计算:TfidfTransformer(),CountVectorizer()和TfidfVectorizer()
- Python 面试题 https://github.com/taizilongxu/interview_python
- 应用集成实战系列:集成应用的业务日志很重要
- java集合细节(二):asList的缺陷
- Shiro的使用与配置实战