首页 > 代码库 > E. Summer Earnings
E. Summer Earnings
就是碰见三个圆或者四个圆的时候就想一下怎么用其他的东西等价一下啊。。。
#include<stdio.h> #include<algorithm> #include<string.h> #include<bitset> #include<math.h> using namespace std; struct node1 { int x,y,id; }s[4000]; struct node { int a,b,w; }G[10000000]; bitset<4000>vis[4000]; int dis(int a,int b) { int res=0; res+=(s[a].x-s[b].x)*(s[a].x-s[b].x); res+=(s[a].y-s[b].y)*(s[a].y-s[b].y); return res; } bool cmp(node x,node y) { return x.w>y.w; } int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d%d",&s[i].x,&s[i].y); s[i].id=i; } int cnt=0; for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { G[++cnt].w=dis(i,j); G[cnt].a=s[i].id; G[cnt].b=s[j].id; } } int ans=0; sort(G+1,G+1+cnt,cmp); for(int i=1;i<=cnt;i++) { int a=G[i].a,b=G[i].b; bitset<4000> temp; temp=vis[a]&vis[b]; if(temp.any()) { ans=G[i].w; break; } vis[a].set(b); vis[b].set(a); } printf("%lf\n",sqrt(ans)/2); }
E. Summer Earnings
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。