Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
29427 | 22fhq | 【BJ】T2 | C++ | 运行出错 | 0 | 0 MS | 260 KB | 1985 | 2024-05-08 12:36:19 |
#include<bits/stdc++.h> using namespace std; #define int long long #define db long double int n,m,x[205],y[205]; db dis(int _x,int _y,int __x,int __y){ return sqrtl((_x-__x)*(_x-__x)+(_y-__y)*(_y-__y)); } namespace subtask1{ bool chose[20]; db ans=0; void getans(){ db k=0; for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(chose[i]&&chose[j]) k=max(k,dis(x[i],y[i],x[j],y[j])); } } ans=max(ans,k); } void dfs(int now,int ardc){ if(ardc==m){ getans(); return; } if(now>n)return; if(n-now+1<m-ardc)return; chose[now]=1; dfs(now+1,ardc+1); chose[now]=0; dfs(now+1,ardc); } void slv(){ dfs(1,0); printf("%.6Lf",ans); } } namespace subtask2{ db ans=1e18; void slv(){ for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ ans=min(ans,dis(x[i],y[i],x[j],y[j])); } } printf("%.6Lf",ans); return; } } namespace subtask3{ db ans=1e18; void slv(){ for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(dis(x[i],y[i],x[j],y[j])>=ans)continue; for(int k=j+1;k<=n;k++){ ans=min(ans,max({dis(x[i],y[i],x[j],y[j]),dis(x[i],y[i],x[k],y[k]),dis(x[k],y[k],x[j],y[j])})); } } } printf("%.6Lf",ans); return; } } signed main(){ // ios::sync_with_stdio(0); auto i1=freopen("b.in","r",stdin); auto i2=freopen("b.out","w",stdout); cin>>n>>m; for(int i=1;i<=n;i++) cin>>x[i]>>y[i]; if(m==2){ subtask2::slv(); } else if(m==3){ subtask3::slv(); } else { subtask1::slv(); } return 0; }