https://www.hackerrank.com/contests/w31/challenges
Accurate Sorting 检查每个数字距离原位是否都不超过1
Zero-One Game 计算可以被删去的数字个数
Spanning Tree Fraction 最优比率生成树,分数规划+Kruscal
Colliding Circles 算出两两圆之间最后被合并的概率,由期望的线性性计算对答案的贡献
#include<bits/stdc++.h> typedef long double ld; int n,k,r[100007]; int main(){ scanf("%d%d",&n,&k); long long s1=0,s2=0; for(int i=0;i<n;++i)scanf("%d",r+i),s1+=r[i],s2+=r[i]*r[i]; ld p=1; for(int i=n;i>n-k;--i){ long long a=1ll*i*(i-1); p=p*ld(a-2)/ld(a); } printf("%.12Lf",acos(-1)*(s2+(s1*s1-s2)*(1-p))); return 0; }