zoukankan      html  css  js  c++  java
  • 洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理

    题目描述

    在本题中,格点是指横纵坐标皆为整数的点。

    为了圈养他的牛,农夫约翰(Farmer John)建造了一个三角形的电网。他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n<32000,0<m<32000),再连接格点(p,0)(p>0),最后回到原点。

    牛可以在不碰到电网的情况下被放到电网内部的每一个格点上(十分瘦的牛)。如果一个格点碰到了电网,牛绝对不可以被放到该格点之上(或许Farmer John会有一些收获)。那么有多少头牛可以被放到农夫约翰的电网中去呢?

    输入输出格式

    输入格式:

    输入文件只有一行,包含三个用空格隔开的整数:n,m和p。

    输出格式:

    输出文件只有一行,包含一个整数,代表能被指定的电网包含的牛的数目。

    输入输出样例

    输入样例#1:
    7 5 10
    输出样例#1:
    20

    说明

    题目翻译来自NOCOW。

    USACO Training Section 3.4

    代码

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<cstdio>
     5 #include<cstdlib>
     6 #include<cmath>
     7 #define M 262144
     8 using namespace std;
     9 
    10 int x,y,z;
    11 
    12 int gcd(int a,int b){
    13     if(b==0) return a;
    14     else return gcd(b,a%b);
    15 }
    16 
    17 int main(){
    18 //    freopen("01.in","r",stdin);
    19     scanf("%d%d%d",&x,&y,&z);
    20     
    21     int b=gcd(x,y)+gcd(abs(x-z),y)+z;
    22     int S=z*y/2;
    23     int n=S-b/2+1;
    24     cout<<n<<endl;
    25     
    26     fclose(stdin);fclose(stdout);return 0;
    27 }

    懂了皮克定理就毫无压力

    上度娘链接:http://baike.baidu.com/view/3207200.htm

    概括如下

    这叫格点图

    (其中n表示多边形内部的点数,s表示多边形边界上的点数,S表示多边形的面积)

  • 相关阅读:
    POJ 1006 ( 中国剩余定理 )
    HDU 2736 Surprising Strings
    STL----map 章节
    最短路问题
    [HAOI2007]反素数
    严格次小生成树[BJWC2010]
    P3320 [SDOI2015]寻宝游戏(LCA)
    [Violet]樱花/阶乘分解
    [HNOI2008]GT考试
    2012 年国家集训队互测 Tree
  • 原文地址:https://www.cnblogs.com/radiumlrb/p/6058576.html
Copyright © 2011-2022 走看看