Meeting

来源:互联网 发布:smarty3 php handling 编辑:程序博客网 时间:2024/04/29 09:07

关键点:每次将不满组条件的两个村民i,j(i<j)标记,这样下次不再计算j村民,节约时间

#include <iostream> #include <cstring>using namespace std; #define MAX 50005 #define INF 1e7bool vis[MAX];      struct node{int x,y; }point[MAX]; int main(){int t,n,mi,m,temp,x,y,d;cin>>t;   while (t--){cin>>n;   mi=INF; memset(vis,0,sizeof(vis));  for (int i=0;i<n;i++) cin>>point[i].x>>point[i].y; for (int i=0;i<n;i++){ if (!vis[i])   { temp=0;for (int j=0;j<n;j++){  if(j==i) continue; x=point[i].x-point[j].x; y=point[i].y-point[j].y; d=x*x+y*y; if (d>mi){ vis[i]=1; vis[j]=1;      break; } if (d>temp) temp=d;   } if (!vis[i]&&mi>temp)   mi=temp; }}cout<<mi<<endl; } return 0; }


0 0
原创粉丝点击