UVa 10245 - The Closest Pair Problem
来源:互联网 发布:差评最多的淘宝网店 编辑:程序博客网 时间:2024/05/23 11:55
看着比较简单,但10000的数据量让我TL了两次,需要进一步优化一下,剪一下枝后,AC了,rank还58,惊喜 ~~
代码如下:
#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<cmath>using namespace std;struct point{ double x, y;} po[10000 + 2];int cmp(const void *a, const void *b){ point *aa = (point*)a; point *bb = (point*)b; return aa ->x > bb->x ? 1 : -1;}int main(){#ifdef test freopen("in.txt", "r", stdin);#endif int t; while(scanf("%d", &t), t) { double min = 10001; for(int i = 0; i < t; i++) scanf("%lf %lf", &po[i].x, &po[i].y); qsort(po, t, sizeof(po[0]), cmp); for(int i = 0; i < t; i++) for(int j = i + 1; j < t; j++) { double d1 = po[i].x - po[j].x; double d2 = po[i].y - po[j].y; double dis = sqrt(d1 * d1 + d2 * d2); if(po[j].x - po[i].x >= min) //在这里剪一下枝 break; if(dis < min) min = dis; } if(min >= 10000) printf("INFINITY\n"); else printf("%.4lf\n",min); } return 0;}
- UVa 10245 - The Closest Pair Problem
- UVa 10245 - The Closest Pair Problem
- uva 10245 - The Closest Pair Problem
- [uva] 10245The Closest Pair Problem
- UVa 10245 - The Closest Pair Problem
- UVA 10245 - The Closest Pair Problem
- uva 10245 The Closest Pair Problem
- uva 10245 The Closest Pair Problem
- UVa 10245 - The Closest Pair Problem
- UVa 10245 - The Closest Pair Problem
- UVa 10245 - The Closest Pair Problem
- UVA 10245 - The Closest Pair Problem
- UVA - 10245 The Closest Pair Problem
- UVA - 10245 The Closest Pair Problem
- uva 10245 The Closest Pair Problem
- uva 10245 The Closest Pair Problem
- UVA 10245 The Closest Pair Problem【分治】
- UVA 10245 The Closest Pair Problem
- 10个你也许不知道的Ubuntu技巧
- android工程结构详细解析
- VisualStudio中对类型的检测
- 微软不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解-统计数据库-记录数-容量-存储过程脚本等
- Java多态趣解
- UVa 10245 - The Closest Pair Problem
- HDU-4068-SanguoSHA
- 正则1
- 创业成功:产业机会+时机+团队执行力+资本加入做乘法
- 求两个串中的第一个最长子串
- [转]《参禅与悟道》——浅谈人生
- CGL 参考
- IPV6地址
- UNREFERENCED_PARAMETER的作用