Electric Fences_usaco3.4_皮克定理
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_皮克定理相关推荐
- 洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理
题目描述 在本题中,格点是指横纵坐标皆为整数的点. 为了圈养他的牛,农夫约翰(Farmer John)建造了一个三角形的电网.他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n& ...
- usaco 3.4 Electric Fence 皮克定理
一条直线((0,0),(n,m))上的格点数(包含端点)等于n与m的最大公约数+1 皮克定理: 面积A和内部格点数目i.边上格点数目b的关系:A = i + b/2 - 1 #include < ...
- NOJ 1434 Fence (皮克定理)
Fence 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 总提交:59 测试通过:23 题目描述 In this pro ...
- poj12652954 [皮克定理 格点多边形]【学习笔记】
Q:皮克定理这种一句话的东西为什么还要写学习笔记啊? A:多好玩啊... PS:除了蓝色字体之外都是废话啊... Part I 1.顶点全在格点上的多边形叫做格点多边形(坐标全是整数) 2.维基百科 ...
- Acwing:通电围栏(皮克定理)
题目描述 农夫约翰的牧场可以看作是一个二维平面. 约翰为了方便看管他养的牛,构建了一个三角形的通电围栏. 他希望他的奶牛都在围栏围起的区域内活动. 三角形围栏的三个顶点位置坐标分别为 (0,0),(n ...
- POJ 1265-Area(计算几何+皮克定理+多边形面积公式)
题目地址:POJ 1265 题意:给定一个格点多边形,求出内部点数in,边上点数on,和面积S. 思路:运用的定理很多. 1.皮克定理:S=in+on/2-1,即in=(2*S+2-on)/2. 2. ...
- 三角形的内点(皮克定理)
题目: 在一个平面坐标系中,我们可以选出三个不全在一条线上的点构成一个三角形.我们称一个在三角形内(不包含三角形的边上),横纵坐标皆为整数的点位这个三角形的内点. 对于一个由(0,0).(n,m).( ...
- 三角形内部整点的个数【皮克定理】
皮克定理 一张方格纸上,上面画着纵横两组平行线,相邻平行线之间的距离都相等,这样两组平行线的交点,就是所谓格点.如果取一个格点做原点O,如图1,取通过这个格点的横向和纵向两直线分别做横坐标轴OX和纵坐 ...
- 欧几里德算法与皮克定理
欧几里德算法概述: 欧几里德算法 又称辗转相除法,用于计算两个整数a,b的最大公约数.其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的. gcd函数的基本性质: gcd(a, ...
最新文章
- 拷贝控制——拷贝控制和资源管理,交换操作,对象移动
- git 版本控制系统初学
- Blazor Server 和 WebAssembly 应用程序入门指南
- linux的基础知识——signal信号捕捉,信号集操作函数
- java数组的扩容,将两个数组合并成一个数组
- mysql 连接字符集_MySQL字符集详解
- tapable 创建钩子
- windows中squid更改默认安装路径配置说明
- 插入u盘计算机未响应,插入U盘打开“我的电脑”后就未响应了,并且所有跟U盘相关的软件都? 爱问知识人...
- 朋友圈点赞截图在线生成源码
- 华为交换机配置IPSG防止DHCP动态主机私自更改IP地址
- php 批量生成一维码,thinkphp5 + barcode 生成条形码
- 大学生找工作如何做自我介绍?如何做好自我介绍?
- CUDA安装教程及调试:本机win10+vs2013+NVIDIA GeForce GTX 1050Ti
- Prometheus学习系列(四十)之报警模板参考
- GDPR is coming!
- 2020年前端学习的新路径
- 2007 Simulation message
- Django中遇到的问题以及解决方法
- 小米MIUI优化weblog
热门文章
- 基于javaweb+mysql的汽车配件销售管理系统(java+SpringBoot+layui+html+maven+mysql)
- Navicat for MySQL给用户赋予角色
- 镜面反射辐照模型——不完全的翻译
- 揭秘肖特基二极管鲜为人知的秘密特性
- Phonics 自然拼读法 S A T I P N Teacher:Lamb
- 重庆印象-大礼堂广场
- chrome浏览器的默认超时时间
- 学习表——受任于败军之际,奉命于危难之间(2.20--2.26)
- 突破中国品牌创新技术实力,TCL做对了什么?
- 毕业生在腾讯、百度、字节跳动就业人数全国高校第一!北京邮电大学2021届毕业生就业质量报告...