Orz lzz。

挺神奇的东西,网上没有多少资料,我也不是太懂,代码什么的都没写过,那就抄一下百度百科吧

定义

设在平面内给定一点\(O\)和常数\(k\)\(k\not= 0\)),对于平面内任意一点\(A\),确定\(A'\),使\(A'\)在直线\(OA\)上一点,并且有向线段\(OA\)\(OA'\)满足\(OA \cdot OA'=k\),我们称这种变换是以\(O\)为的反演中心,以\(k\)为反演幂的反演变换,简称反演。称\(A'\)\(A\)关于\(O(r)\)的互为反演点。

\(k>0\)时,有向线段\(OA\)\(OA'\)同向,\(A\)\(A'\)在反演极同侧,这种反演变换称为正幂反演,亦叫双曲线式反演变换。

\(k<0\)时,有向线段\(OA\)\(OA'\)反向,\(A\)\(A'\)在反演极异侧,这种反演变换称为负幂反演,亦叫椭圆式反演变换。

性质

信息学中有几条常用的正幂反演的性质

这里的原点指的是反演中心

  1. 过原点的直线反演后仍为过原点的直线

  2. 不过原点的直线反演后为过原点的圆

  3. 过原点的圆反演后为不过原点的直线

  4. 不过原点的圆反演后为不过反演中心的圆

因此很多关于圆的题目可以转化为直线问题来做

一道题目。

给一个点集,问有多少个三元组,和原点四点共圆

\(N \leqslant1000\).

对点进行反演,问题就转化为了三点共线问题