uva216-Getting in Line(网络连线)
来源:互联网 发布:ping ip地址加端口号 编辑:程序博客网 时间:2024/06/02 15:08
回溯-理解中。。。
寻找最短连线++++++(生成排列)
还要注意缩短时间的技巧----及时回溯,
代码经过努力有68ms优化到了24ms。。。
还是不知道人家那种0ms 的神代码怎么写的。先贴一下自己的代码吧!!
代码如下:
#include <cstdio>#include <cmath>#include <cstring>int x[10], y[10], f[10], a[10], A[10];double MIN, d[10], D[10];void find_mindis(int n, int cur, double sum){ if(cur==n) { if(sum<MIN){ for(int i = 0; i < n; i++) { A[i] = a[i]; if(i) D[i] = d[i]; } MIN = sum; } return; } if(sum>MIN)return; for(int i = 1; i <= n; i++) { if(f[i])continue; a[cur] = i; f[i] = 1; double temp = 0; if(cur) temp = d[cur] = sqrt((x[i]-x[a[cur-1]])*(x[i]-x[a[cur-1]])+(y[i]-y[a[cur-1]])*(y[i]-y[a[cur-1]])); find_mindis(n, cur+1,sum+temp); f[i] = 0; }}int main (){ int n, Case = 0; while(scanf("%d",&n)&&n) { MIN = 1000; memset(f,0,sizeof(f)); for(int i = 1; i <= n; i++) scanf("%d%d",&x[i],&y[i]); printf("**********************************************************\nNetwork #%d\n", ++Case); find_mindis(n, 0, 0); for(int i = 1; i < n; i++) printf("Cable requirement to connect (%d,%d) to (%d,%d) is %.2lf feet.\n",x[A[i-1]],y[A[i-1]],x[A[i]],y[A[i]],D[i]+16); printf("Number of feet of cable required is %.2lf.\n",MIN+16*n-16); } return 0;}
- uva216-Getting in Line(网络连线)
- UVA216 Getting in Line
- UVa216 Getting in Line
- UVA216-Getting in Line
- uva216 Getting in Line
- uva216 Getting in Line
- uva216 Getting in Line
- uva216(Getting in Line )-简单回溯
- UVA216 - Getting in Line(哈密顿图)
- Uva216—— Getting in Line
- 216--Getting in Line
- 216 - Getting in Line
- UVaOJ216---Getting in Line
- Getting in Line
- UVA Getting in Line
- Getting in Line
- UVa 216 Getting in Line
- Uva 216 Getting in Line
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
- achartEngineDemo1.0 NoClassDefFoundError问题解决
- 图像处理基本算法 车牌识别与定位
- 博客开张
- oracle 翻页查询
- uva216-Getting in Line(网络连线)
- Android将允许纯C/C++开发应用
- python写了个登陆moofeel网站回复帖子并领取魔币的程序
- 检测用户向麦克吹气
- 解读QML之一
- phpmyadmin 错误 #2002 Cannot log in to the MySQL server
- 9,10 IP选路,动态选路
- Android意外情况(来电话,按Home键,内存不足)保存数据的方法
- Mobile's main Camera inverted and 3rd apk's main camera inverted issue