1. 切割线定理:

 若PT 与 圆相切,则 PT^2 = PB*PA

证明:连接AT, BT

∵ ∠PTB=∠PAT(弦切角定理);∠APT=∠TPB(公共角);

∴ △PBT∽△PTA(两角对应相等,两三角形相似);

∴PB:PT=PT:AP;

即:PT²=PB·PA

2.  割线长定理:

AP·BP=CP·DP

证明:

∵∠A和∠C都对弧BD

∴由圆周角定理,得 ∠DAP=∠BCP

又∵∠P=∠P,∴△ADP∽△CBP

∴AP:CP=DP:BP

即AP·BP=CP·DP

3. 题目地址~~

 AC代码:

#include <cmath>#include <cstdio>#include <iostream>using namespace std;typedef long long ll;int main(){ ll xa,ya,xr,r,n; int t;cin>>t; while(t–) { cin>>xa>>ya>>xr>>r>>n; ll y0,c; ll tep = (xa-xr)*(xa-xr)-r*r; double tt = sqrt(tep*1.0); double yy = xa*r*1.0/tt; double y1 = ya-yy; double y2 = ya+yy; ll ans = 0; while(n–) { cin>>y0>>c; if(y0*1.0>=y1&&y0*1.0<=y2) ans += max(0LL,c-tep); else ans += c; } cout<<ans<<endl; } return 0;}