Triangle - POJ 2954(求三角形内的格子点的个数)
2015-10-27 16:14
253 查看
Pick公式:平面上以格子点为顶点的简单多边形的面积=边上的点数/2+内部的点数+1。
代码如下:
----------------------------------------------------------------------------------------------------------------------------
代码如下:
----------------------------------------------------------------------------------------------------------------------------
#include<iostream> #include<string.h> #include<stdio.h> #include<algorithm> #include<math.h> using namespace std; const int MAXN = 17; const double EPS = 1e-10; struct point { int x, y; }p[MAXN]; int GCD(int m, int n) { if(!m || !n) return m+n; return GCD(n, m%n); } int main() { while(1) { int ok=0; for(int i=0; i<3; i++) { scanf("%d%d", &p[i].x, &p[i].y); if(p[i].x || p[i].y) ok = 1; } if(!ok)break; p[3] = p[0]; int cnt=0, area=0; for(int i=0; i<3; i++) { cnt += GCD(abs(p[i].x-p[i+1].x), abs(p[i].y-p[i+1].y)); area += p[i].x*p[i+1].y - p[i].y*p[i+1].x; } if(area < 0)area = -area; printf("%d\n", (area-cnt)/2+1); } return 0; }
相关文章推荐
- 【推荐】怎么才能让app store加速审核周期
- Git常用命令
- Win2008 r2 远程桌面服务授权管理器激活方法
- tomcat服务器下打不开img标签src的图片名为中文打不开的问题?
- java email操作demo和解析eml文件
- yum使用第三方源安装软件时提示软件包没有签名
- js 压缩工具 google closure compiler
- 转载一些面试题
- c3p0-config连接池
- SharePoint 2013 error The given assembly name or codebase System.ServiceModel.dll was invalid
- [NOIP备考]随机化贪心解决动态规划问题(一星)
- C语言 二维数组动态分配和释放
- ChemDraw Std 14性价比最高版本,即将下架
- 判断
- [置顶] oracle表空间过大时候的处理
- 十六、变更管理; 十七、信息系统安全管理; 十八、项目风险管理
- 开发板与电脑连接局域网
- 面向对象第五次作业
- Android数据存储的5种方法
- opencv-第六章-霍夫变换