hdu 3585 最快代码
来源:互联网 发布:摄像头录制软件 编辑:程序博客网 时间:2024/04/27 15:58
hdu上第三,15ms
用的是前面一篇文章中讲过的算法 http://blog.csdn.net/techmonster/article/details/50658951
基本思想和网上的都一样,主要极大团的算法不同,另外加上了输入优化. 下面代码没有作输入优化,但交上去时间相差不多(可能没相差)
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<cctype>#define N 55using namespace std;int n, k, cnt, l, r, mid, le;double ans;int x[N], y[N], d[N][N], dist[2500], a[N],some[55][55];bool dfs(int deep, int sn,int an){ if(an >= k) return 1; if(sn + an < k) return 0; int u = some[deep][0];//pivot vertex for(int i = 0; i < sn; i ++) { int v = some[deep][i]; if(d[u][v] >= le) continue; int tsn = 0; for(int j = 0; j < sn; j ++)if(d[v][some[deep][j]] >= le) some[deep + 1][tsn ++] = some[deep][j]; if(dfs(deep + 1, tsn, an + 1)) return 1; //把v从some取出,放入none some[deep][i] = 0; } return 0;}int getdist(int u, int v){ return (x[u] - x[v]) * (x[u] - x[v]) + (y[u] - y[v]) * (y[u] - y[v]);}int main(){ //freopen("t.txt","r",stdin); while(~scanf("%d%d", &n, &k)) { for (int i = 1; i <= n; i++) {scanf("%d%d",&x[i],&y[i]);} cnt = 0; for (int i = 1; i < n; i++) for (int j = i+1; j <= n; j++) { d[i][j] = getdist(i, j); d[j][i] = d[i][j]; cnt++; dist[cnt] = d[i][j]; } sort(dist+1, dist+cnt+1); l = 1; r = cnt; while (l <= r) { for(int i = 0; i < n; ++i) some[0][i] = i+1;//初始状态为所有点 mid = (l + r) / 2; le = dist[mid]; a[0] = 0; if (dfs(0,n,0)) { l = mid + 1; ans = sqrt(dist[mid]); } else { r = mid - 1; } } printf("%.2f\n", ans); } return 0;}
1 0
- hdu 3585 最快代码
- 计算MD5最快代码
- 计算MD5最快代码
- hdu 5015 233 Matrix(最快的搞法)
- 自动打开最快镜像站的代码[html]
- 2017hdu新生赛 1003 下起楼来我最快
- TIP: 如何最快得到VS2008示例代码? Help > Samples
- 最快排序和搜索算法的最简代码实现
- 最快排序和搜索算法的最简代码实现
- 最快排序和搜索算法的最简代码实现
- 最快排序和搜索算法的最简代码实现
- 最快排序和搜索算法的最简代码实现
- 最快排序和搜索算法的最简代码实现
- Android开发中最有效率最快的循环代码
- Android开发中最有效率最快的循环代码
- [小代码]如何写运行最快的循环
- 时间复杂度最快的排序算法 O(n) JAVA代码
- 【大风】水仙花数最简短,运行速度最快的代码
- 面向接口编程详解(一)——思想基础
- bsoj 1850 【POJ1474】监控摄像头
- C语言union 关键字与大小端模式
- linux下I/O体系结构和设备驱动程序
- Go语言学习环境搭建
- hdu 3585 最快代码
- 市委组织部项目--需求分析
- 视频压缩的I帧,P帧和B帧。
- 数据结构:JavaScript实现二叉查找树
- 费用预算
- 以访客至上的网页设计(三)
- linux at命令详解
- BZOJ 3123: [Sdoi2013]森林|主席树|启发式合并
- RedHat配置光盘源