Description


给定两个整点(m,n)(m,n)和(p,0)(p,0),与坐标原点(0,0)(0,0)构成三角形,求三角形内的整点数量

Analysis


找到这么一道神奇的题目以及神奇的定理

皮克定理

一个计算点阵中顶点在格点上的多边形面积公式:S=a+b2−1S=a+\frac{b}{2}-1,其中a表示多边形内部的点数,b表示多边形边界上的点数,s表示多边形的面积

S=ah2S=\frac{ah}{2},b=p+gcd(n,m)+gcd(|p−n|,m)b=p+gcd(n,m)+gcd(\left|p-n\right|,m),那么a=S−b2+1a=S-\frac{b}{2}+1

Code


/*
ID:wjp13241
PROG:fence9
LANG:C++
*/
#include <stdio.h>
#include <cmath>
using namespace std;
struct pos{int x,y;}t[3];
double cros(pos a,pos b,pos c)
{return ((a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y))*0.5;
}
int gcd(int x,int y)
{return !y?x:gcd(y,x%y);
}
int main()
{scanf("%d%d%d",&t[1].x,&t[1].y,&t[2].x);double S=fabs(cros(t[1],t[2],t[0]));int b=t[2].x+gcd(t[1].x,t[1].y)+gcd(fabs(t[2].x-t[1].x),t[1].y);printf("%d\n",(int)(S-b/2+1));return 0;
}

Electric Fences_usaco3.4_皮克定理相关推荐

  1. 洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理

    题目描述 在本题中,格点是指横纵坐标皆为整数的点. 为了圈养他的牛,农夫约翰(Farmer John)建造了一个三角形的电网.他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n& ...

  2. usaco 3.4 Electric Fence 皮克定理

    一条直线((0,0),(n,m))上的格点数(包含端点)等于n与m的最大公约数+1 皮克定理: 面积A和内部格点数目i.边上格点数目b的关系:A = i + b/2 - 1 #include < ...

  3. NOJ 1434 Fence (皮克定理)

    Fence 时间限制(普通/Java):1000MS/3000MS         运行内存限制:65536KByte 总提交:59          测试通过:23 题目描述 In this pro ...

  4. poj12652954 [皮克定理 格点多边形]【学习笔记】

    Q:皮克定理这种一句话的东西为什么还要写学习笔记啊? A:多好玩啊... PS:除了蓝色字体之外都是废话啊...  Part I 1.顶点全在格点上的多边形叫做格点多边形(坐标全是整数) 2.维基百科 ...

  5. Acwing:通电围栏(皮克定理)

    题目描述 农夫约翰的牧场可以看作是一个二维平面. 约翰为了方便看管他养的牛,构建了一个三角形的通电围栏. 他希望他的奶牛都在围栏围起的区域内活动. 三角形围栏的三个顶点位置坐标分别为 (0,0),(n ...

  6. POJ 1265-Area(计算几何+皮克定理+多边形面积公式)

    题目地址:POJ 1265 题意:给定一个格点多边形,求出内部点数in,边上点数on,和面积S. 思路:运用的定理很多. 1.皮克定理:S=in+on/2-1,即in=(2*S+2-on)/2. 2. ...

  7. 三角形的内点(皮克定理)

    题目: 在一个平面坐标系中,我们可以选出三个不全在一条线上的点构成一个三角形.我们称一个在三角形内(不包含三角形的边上),横纵坐标皆为整数的点位这个三角形的内点. 对于一个由(0,0).(n,m).( ...

  8. 三角形内部整点的个数【皮克定理】

    皮克定理 一张方格纸上,上面画着纵横两组平行线,相邻平行线之间的距离都相等,这样两组平行线的交点,就是所谓格点.如果取一个格点做原点O,如图1,取通过这个格点的横向和纵向两直线分别做横坐标轴OX和纵坐 ...

  9. 欧几里德算法与皮克定理

    欧几里德算法概述: 欧几里德算法 又称辗转相除法,用于计算两个整数a,b的最大公约数.其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的. gcd函数的基本性质: gcd(a, ...

最新文章

  1. 拷贝控制——拷贝控制和资源管理,交换操作,对象移动
  2. git 版本控制系统初学
  3. Blazor Server 和 WebAssembly 应用程序入门指南
  4. linux的基础知识——signal信号捕捉,信号集操作函数
  5. java数组的扩容,将两个数组合并成一个数组
  6. mysql 连接字符集_MySQL字符集详解
  7. tapable 创建钩子
  8. windows中squid更改默认安装路径配置说明
  9. 插入u盘计算机未响应,插入U盘打开“我的电脑”后就未响应了,并且所有跟U盘相关的软件都? 爱问知识人...
  10. 朋友圈点赞截图在线生成源码
  11. 华为交换机配置IPSG防止DHCP动态主机私自更改IP地址
  12. php 批量生成一维码,thinkphp5 + barcode 生成条形码
  13. 大学生找工作如何做自我介绍?如何做好自我介绍?
  14. CUDA安装教程及调试:本机win10+vs2013+NVIDIA GeForce GTX 1050Ti
  15. Prometheus学习系列(四十)之报警模板参考
  16. GDPR is coming!
  17. 2020年前端学习的新路径
  18. 2007 Simulation message
  19. Django中遇到的问题以及解决方法
  20. 小米MIUI优化weblog

热门文章

  1. 基于javaweb+mysql的汽车配件销售管理系统(java+SpringBoot+layui+html+maven+mysql)
  2. Navicat for MySQL给用户赋予角色
  3. 镜面反射辐照模型——不完全的翻译
  4. 揭秘肖特基二极管鲜为人知的秘密特性
  5. Phonics 自然拼读法 S A T I P N Teacher:Lamb
  6. 重庆印象-大礼堂广场
  7. chrome浏览器的默认超时时间
  8. 学习表——受任于败军之际,奉命于危难之间(2.20--2.26)
  9. 突破中国品牌创新技术实力,TCL做对了什么?
  10. 毕业生在腾讯、百度、字节跳动就业人数全国高校第一!北京邮电大学2021届毕业生就业质量报告...