• Pick定理、欧拉公式和圆的反演


    Pick定理、欧拉公式和圆的反演

    Tags:高级算法


    Pick定理

    内容

    定点都是整点的多边形,内部整点数为(innod),边界整点数(ednod),(S=innod+frac{ednod}{2}-1)

    证明

    把每个整点近似地看成一个圆,那么多边形内部的整点所代表的圆全部被算入
    多边形边界上的圆被算了一半
    顶点上被算了(sum 半圆-外角),外角和360度,于是(-1)

    应用

    POJ2954 求格点三角形内部点数

    欧拉公式

    内容

    [V-E+F=2 ]

    (V:vertex) 顶点
    (E:edge)
    (F:Flat)

    适用于所有多变形(无论维度)

    例如一个长方形:(4)个点(4)条边,两个面:里面和外面

    应用

    (n)个点做三维凸包,求增量构造法复杂度。

    假设(n)个点都在凸包上,那么(V=n),每个面有三条边,每条边被算了两次,即(2E=3F)
    通过上面的公式可以得到(F=2n-4,E=3n-6)
    增量构造法的复杂度是面数×点数,所以是(cal O(n^2))级别

    圆的反演变换

    内容

    反演中心为(O),反演半径为(R),若经过(O)的直线经过(P,P'),且(OP*OP'=R^2),则称(P)(P')关于(O)互为反演

    性质

    • 1.一根过(O)的直线的反形是本身
    • 2.一根不过(O)的直线的反形是一个过(O)的圆
    • 3.一个过(O)的圆的反形是一根不过(O)的直线
    • 4.一个不过(O)的圆的反形是一个和该圆关于(O)位似的圆

    下面这张图可以粗略解释一下有这么个东西:两种不同颜色的三角形相似,可以证出(CD)关于(E)的反形为圆

    • 5.反演不改变相切关系

    应用

    1、求平面内与原点四点共圆的三元组个数

    Problem Provider:自为风月马前卒
    对所有点反演后求三点共线的三元组即可

    2、求经过P点并与两给定相离圆外切的圆

    参考博客:ACdreamer反演教程水郁图文cdsszjj题解教你尺规画图
    Problem Provider:HDU4773 Problem of Apollonius
    先将两相离圆关于P反演,然后做反形的公切线,反演回来成为公切圆

    TBC...

  • 相关阅读:
    AOP的实现原理——动态代理
    反射
    代理模式
    sprig——jar包
    spring事务管理
    [c++基础]3/5原则--拷贝构造函数+拷贝赋值操作符
    [c++面试准备]--vector对象是如何增长的
    c++面试须知
    redhat--1
    kvm配置虚拟机[待整理]
  • 原文地址:https://www.cnblogs.com/xzyxzy/p/10241872.html
Copyright © 2020-2023  润新知