題目任意給出四個點,求出到這四個點的距離之和最小的點到這四個點的距離
若四邊形為凸的,費馬點為對角線交點,否則為凹的那點
證明很簡單,把要證明的那點與其他頂點連起來,再任取一點,證明這點到四個頂點的距離比原來那點長即可
view code
#include#include
#include
const
double esp=1e-8;
struct pointa[10];
struct line
;double min(double a,double b)
int dblcmp(double d)
double cross(point a, point b, point c)
void lineintersect(line l1,line l2, double &x, double &y)
void lineform(double x1,double y1,double x2,double y2, line &temp)//
ax+by+c=0;
double dit[5];
int main()
if(!flag)
break;
memset(dit,0,sizeof(dit));
for(i=1;i<=4;i++)
}line temp1,temp2;
double fx,fy;
if(cross(a[1],a[2],a[3])*cross(a[1],a[2],a[4])<0)
else
if(cross(a[1],a[3],a[4])*cross(a[1],a[3],a[2])<0)
else
if(cross(a[1],a[4],a[3])*cross(a[1],a[4],a[2])<0)
ans=0;
fermat.x=fx;fermat.y=fy;
for(i=1;i<=4;i++)
double tans=min(min(dit[1],dit[2]),min(dit[3],dit[4]));
double ret=min(tans,ans);
printf("
%.4lf\n
",ret);
}return
0;}
費馬小定理 hdu 4196
據說這題非常卡時間 題目 用不大於n內的所有數去組成乙個盡可能大的完全平方數。完全平方數,顯然是所有的素因子的個數都是偶數,便取n!的所有素因子的個數,便 有了初步想法,算出n!的什麼素因子個數,奇數的就捨去乙個,偶數的全要,然後再全部乘起來,可是因為規模很大,即使快速冪乘也是會超時。於是考慮把n!...
費馬小定理 hdu 1098
題意 給出k。求使得f x 5 x 13 13 x 5 k a x對任意x都為65的倍數的a的最小值。mark 65 13 5。要使f x 是65的倍數,只需要f x 是5和13的倍數即可。先來分析13的。若f x 是13的倍數,有5 x 13 13 x 5 k a x 13 0,其中13 x 5項...
hdu1098 費馬小定理
題意 給出k。求使得f x 5 x 13 13 x 5 k a x對任意x都為65的倍數的a的最小值。mark 65 13 5。要使f x 是65的倍數,只需要f x 是5和13的倍數即可。先來分析13的。若f x 是13的倍數,有5 x 13 13 x 5 k a x 13 0,其中13 x 5項...