Hoj 1143 Area
来源:互联网 发布:中国数据研究中心 编辑:程序博客网 时间:2024/06/04 18:52
皮克定理的应用。
皮克定理:一个计算点阵中顶点在格点上的多边形面积公式:S=a+b÷2-1,其中a表示多边形内部的点数,b表示多边形边界上的点数,s表示多边形的面积。
s可以用叉积和来求。b等于这条边的x差值和y差值的最小公约数+1,然后就可以根据公式求得a。
题目:http://acm.hit.edu.cn/hoj/problem/view?id=1143
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <vector>using namespace std;int gcd(int a,int b){ if(a<0) { a = -a; } if(b<0) { b = -b; } int c; while(b) { c = b; b = a%b; a = c; } return a;}int main(){#ifndef ONLINE_JUDGE freopen("in.txt","r",stdin);#endif int t; scanf(" %d",&t); int num = 0; while(t--) { num++; int n; int x2,y2; int x1=0,y1=0; double area = 0; int onS = 0; int inS = 0; scanf(" %d",&n); for(int i=0;i<n;i++) { scanf(" %d %d",&x2,&y2); onS += gcd(x2,y2); x2 += x1; y2 += y1; area += (double)(x1*y2-x2*y1)/2.0; x1 = x2; y1 = y2; } inS = (area + 1) - onS/2; printf("Scenario #%d:\n",num); printf("%d %d %.1lf\n\n",inS,onS,area); } //printf("\n");}
- Hoj 1143 Area
- Hoj 2995 Area
- HOJ
- (概念题)线段树 HOJ 1495 Area of Simple Polygons
- HOJ 12884 Area Coverage(线段树、求矩形面积并)
- Area
- Area
- Area
- area
- Area
- Area
- HOJ 1004
- 位图-hoj
- HOJ 1020
- HOJ Megaminx
- hoj WERTYU
- hoj 12033
- HOJ-2277
- linux kernel Topic
- 微软WF应用随笔
- UNIX网络编程——socket的keep-alive
- jquery获取表格总行数
- (单一职责、开放封闭、里氏代换、接口隔离、依赖倒置)
- Hoj 1143 Area
- 符号文件与调用工具
- 2013年2月21日VC++学习笔记
- Linux Myself常用命令集
- 2013年LED产业发展十大趋势
- 分享一个js省市县联动代码
- 记录自己学习android系统启动以及 recovery过程(3)----------factory data reset -> reboot
- 黑马程序员_泛型类来完成功能扩展
- Oracle ASM Advanced Tranning 4 —— RMAN Migrate into ASM