hdu 1007 Quoit Design
来源:互联网 发布:淘宝开店教程全集下载 编辑:程序博客网 时间:2024/06/06 03:15
分治
C++输入输出超时
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#define inf 1<<30#define maxn 100010using namespace std;int n,f[maxn];struct stu{double x,y;};stu mapp[maxn];bool cmpx(stu x,stu y) {return x.x<y.x;}bool cmpy(int x,int y) {return mapp[x].y<mapp[y].y;}double dis(stu a,stu b) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } double solve(int l,int r){if(l==r){//return min(dis(mapp[l],mapp[r]),min(dis(mapp[l],mapp[l+1]),dis(mapp[l+1],mapp[r])));return inf;}else if(l==r-1){return dis(mapp[l],mapp[r]);}else{int mid=(l+r)/2;double d=min(solve(l,mid),solve(mid+1,r));int cnt=0;for(int i=l;i<=r;i++){if(abs(mapp[i].x-mapp[mid].x)<=d) f[cnt++]=i;}sort(f,f+cnt,cmpy);for(int i=0;i<cnt;i++){for(int j=i+1;j<cnt;j++){if(abs(mapp[f[i]].y-mapp[f[j]].y)>d) break;d=min(d,dis(mapp[f[i]],mapp[f[j]]));}}return d;}}int main(){//cin.sync_with_stdio(false);//while(cin>>n&&n)while(scanf("%d",&n)!=EOF){if(!n) break;for(int i=0;i<n;i++){//cin>>mapp[i].x>>mapp[i].y;scanf("%lf %lf",&mapp[i].x,&mapp[i].y); } sort(mapp,mapp+n,cmpx);printf("%.2f\n",solve(0,n-1)/2);}return 0;}
0 0
- hdu 1007 Quoit Design
- hdu 1007 Quoit Design
- hdu 1007 Quoit Design
- HDU-1007 Quoit Design
- hdu 1007 Quoit Design
- hdu 1007 Quoit Design
- hdu 1007 Quoit Design
- HDU 1007 Quoit Design
- HDU 1007 Quoit Design
- HDU 1007 Quoit Design
- hdu-1007-Quoit Design
- HDU 1007 Quoit Design
- hdu 1007 - Quoit Design
- hdu 1007 Quoit Design
- hdu 1007 Quoit Design
- HDU 1007 Quoit Design
- HDU 1007 Quoit Design
- hdu 1007 Quoit Design
- 圆角之战-如何提高性能
- 彻底搞定C语言指针详解-完整版-时候初学者-必备
- sine之舞
- 102. Binary Tree Level Order Traversal
- simhash算法原理及实现
- hdu 1007 Quoit Design
- html5游戏开发1 骰子游戏
- 适配器模式(二)-----简单的实现一个适配器模式
- 蓝桥杯大赛个人赛省赛(软件类) C/C++ 大学B组
- c++第一次实验-3
- I2C驱动小结---心得
- ext2文件系统之ext2_lookup函数源代码分析
- 互联网几种初级攻击
- Java中数据存放的位置