zoukankan      html  css  js  c++  java
  • [几何]三角形的内点

    在一个平面坐标系中,我们可以选出三个不全在一条线上的点构成一个三角形。我们称一个在三角形内(不包含三角形的边上),横纵坐标皆为整数的点位这个三角形的内点。 对于一个由(0,0)、(n,m)、(p,0)作为顶点构成的三角形,请你设计程序求出他的内点数。

    输入包括一行,包括三个用空格分隔的整数,分别为n,m,p(0 ≤ n < 32000,0 < m < 32000,0 < p < 32000)。

    输出仅一个数,为这个三角形的内点的个数。

    样例输入

    7 5 10

    样例输出

    20

    皮克定理:2s=2a+b-2
    s:三角形面积
    a:三角形内部的点的数目
    b:三角形边界上的点的数目

    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    const ll N=1e9+7;
    int n,m,p;
    int gcd(int a,int b)
    {
        if(b==0)
            return a;
        return gcd(b,a%b);
    }
    int main()
    {
        scanf("%d %d %d",&n,&m,&p);
        int s=m*p/2;
        int sum=s+1-(p+gcd(n,m)+gcd(abs(n-p),m))/2;
        printf("%d
    ",sum);
        return 0;
    }
    
    
    
     
  • 相关阅读:
    U盘支持启动windows和Linux
    emacs安装
    npm 安装指定的第三方包
    npm安装第三方包
    npm 安装淘宝镜像
    ssm 环境搭建
    gitBook安装简介
    git 博客搭建
    git 多人开发
    git ssh提交
  • 原文地址:https://www.cnblogs.com/Diliiiii/p/9728822.html
Copyright © 2011-2022 走看看