题解 CF1495A
Silence_water · · 题解
题目传送门
Analyse
由于将
考虑下图情况。
此时可能的答案有
此时有
故选择图中红线是最优的。
将
Solution
注意精度问题和强制转 long long。
#include<bits/stdc++.h>
using namespace std;
const int M=1e5+5;
int T,n,k,a[M],b[M];
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
int a0=0,b0=0;
for(int i=1;i<=2*n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
if(y==0)a[++a0]=abs(x);
else b[++b0]=abs(y);
}
sort(a+1,a+n+1);
sort(b+1,b+n+1);
double ans=0.0;
for(int i=1;i<=n;i++)
ans+=sqrt((long long)a[i]*a[i]+(long long)b[i]*b[i]);
printf("%.11lf\n",ans);
}
return 0;
}
The end
感谢您的观看!如有不足,请麻烦指正哦。